778a0a's microblog

logs about gamedev

とりあえず個人行動パネルはできたので、次はこれを表示するところまでゲーム処理を作っていく。

とりあえずの残件

  • ゲーム中に個人行動パネルを表示する
  • 各ボタンのアクションを実装する
  • 出撃中の表示・アクションを考える
  • (個人行動パネルに情報を追加する 勢力、城)

表示はできるようになった

image.png

有効無効はできたので、次はいったんボタン類を動的に作る感じにする。

それが終わったら戦略行動パネルを作って、

それが終わったら一通りゲームループを回せるように内部処理や、各アクションを実装していく。

image.png

やることを思い出す。

戦略行動パネルの作成も一旦終わったので、次は戦略行動のアクションの実装と、アクションに必要な画面の作成を行う。

今のところの残件

個人: 勝手出撃 個人: 仕官 個人: 反乱 個人: 転居 個人: 放浪 個人: 奪取 戦略: 同盟 戦略: 独立 戦略: 褒賞 戦略: 町建設(不要?) 戦略: 進軍 戦略: (援軍) 戦略: 預入 戦略: 解雇 戦略: 親善 戦略: 採用 戦略: 投資 戦略: 輸送 戦略: 引出

多いので他で管理する。

WorldData等の解決がクラスによってまちまちでいい加減面倒なので、リハビリも兼ねて全部揃えることにする。

次はUI周りのコードを見直す。

betrayer1はUIは1920x1080ベースで作っていたけど、unityroomに上げるときに画面解像度960x540にしたら微妙に全体的にレイアウトが崩れたので、betrayer2ではスケールが発生しない960x540ベースで画面を作るようにしていたけど、Claude CodeがフルHD前提の縮尺で画面を書くので1920x1080ベースで作るように戻した。

uxmlにハードコードされている値を全部直さないといけないのでとても大変。

実行中にuxmlを編集すると、UIDocumentのOnDisable->OnEnableが起こって、UIDocumentやRosalinaオブジェクトの再生成が起こってUIの状態が全部吹き飛んでしまう。

Rosalinaの生成コードに手を加えて二回目以降のOnEnable時にRosalinaオブジェクトを使い回す(Root等のVisualElementの再セットだけを行う)ようにすれば、今の作り的にはほとんど問題なくなる。

直接VisualElementのstyleや状態を書き換えているところは復元できないけど、概ね無視できるレベルの問題のはず。

完璧にやるなら、何らかの仕組みでそういう状態変更もトラックするか、Reactのrender的な、それを呼び出したら現在の状態をもとに表示状態をセットする純粋関数的な作りにする必要がある。

大体うまくいったものの、冷静に考えるとここまで何も開発は進んでいない。

採用アクションはできた。

image.png

久しぶりに作業に取り掛かる。

まずは戦略パネルの各アクションの実装、それに伴う必要なUIの実装。

城情報のUIを作る。

作りかけ

image.png

やりたいこと ・UIを改善する ・城目標設定の仕組みを作る ・ヘックスクリック時の情報スクリーンを作る

改造中

image.png

.

image.png
拡大画像