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

Reference#