Unity
Making RPG

Abstract#

Unityはゲームを作るツール。とても高度。ここではTipsを

Topic#

アニメーション#

Unityのアニメーション機能は強力らしいが、最初わかりにくい。
最初Animation Windowの録音ボタンが押せる状態にならずどうしたものかという感じだったが、Animationを設定したいGameObjectをHierarchyから選ばないといけない。
既存のキャラのアニメーションを変化させるために新しくアニメーションを追加しようとしたとき、既存のキャラをHierarchyから選んで操作してしまうと、既存のキャラのアニメーションがいきなり置き換わってしまう。そういう場合は、ダミーをHierarchy上につくってやるか、Prefab上でやるとよいらしい。
録音ボタンがおせたあと、アニメーションで使う画像の指定がなかなかできなかったが、この録音ボタンを押した後に、メインのWindowに戻って変えたい画像のInspectorで指定しているイメージを変えるとAnimation Windowで反応して変わる。この別のWindowに移動して操作するのが気持ち悪い。
AnimationControlerもわかりにくい。ステートマシーン図みたいなやつ。ステートにあたるものを増やすには、Animationをつくって、ドラッグアンドドロップすると出てくる。矢印は、ステートに当たるものを右クリックするとMake Transitionがでてくるので、これを選ぶといつの間にか矢印がでている。この矢印をえらぶと下の方にConditionsがあり、ここにTriggerを追加する。このTriggerは、文字列で識別される。Scriptの中で定義される。わかりにくい。

UI系#

なかなか思うようにサイズは変わってくれないが、Play中にパラメータを変化させるとリアルタイムで変わってくれるので見た目を確認する。ただし、その後Playを解いて、ちゃんと変えないと反映されないことに注意。
ツリー構造になっているので、どのコンポのパラメータがレイアウトに効いているかわかりにくいから要確認
Rect TransformとLayout Elementは表示場所にもろに効く。Layout ElementはHeightだけでもMinとPreferredとFlexible3種類もある。
メニューを作ったけど全然でてこなくなったとか、カーソルの動きがうまくいかなくなったとか、今までうまくいっていたことがうまくいかなくなる時がありました。原因はHierarchy上でちゃんとMenuItemをMenuRootぶら下げて、MenuRootのInspection上MenuItemのリスト(可変)にドラッグアンドドロップで指定していたのが、何らかのきっかけで消えていたことでした。ドラッグアンドドロップだけではなく、できるだけ、C#上でも配下の子供をリストに加える処理を入れておくべき。
InvokeさせたいメソッドをもつScriptをまず指定するのだが、AssetのScriptを持ってくるのではなく、そのScriptが指定されているGameObjectを持ってこないといけない。そこが指定されれば、Dropdownリストで選べるようになる。

その他#

Visual Studioがいいかも。Unity Hub経由でインストール後、Unity側のExternal Toolsの設定でVisual Studioを設定しましょう[1]。そうすると、Scriptを開くだけで、プロジェクトを読み込んでくれて、再生ボタンを押すとUnityにアタッチするので、その状態でUnityで動作を始めるとデバッガーが動き、マークしていたところで止まってくれます。変数の中身とかも見れます。
MenuRootのScrollRectを指定していたはずだが、いつの間にか消えていて、縦スクロールができなくなっていた。復活させたら動くようになったが。。
GameObjectを再利用できるようにするらしい[2].Hierarchy上で一時的に作って、Assetフォルダにドラッグして保存する。Hierarchy側は用途がなければ消す。

Reference#

  1. [#1]2025年1月30日, オオバ,【2025年版】Visual StudioをインストールしてUnityで使う方法, https://shibuya24.info/entry/unity-install-visualstudio
  2. [#2]2022年02月12日, ohbashunsuke, UnityのPrefab(プレハブ)とは?使い方まで徹底解説, https://shibuya24.info/entry/unity-prefab