レーンの両サイドに柵を付けられるようにしました。
柵はBlenderのArchipackというアドオンを使うと簡単に作れます。アドオンはUser Preferences…から追加できます。
検索で簡単に見つかります。チェックをいれると使えるようになります。
Shift + AのAddメニューに追加されています。
Fenceをクリックしてみます。
数種類のフェンスが用意されていました。Metalを使ってみます。
クリックすると3Dカーソルの位置にフェンスが作られます。
Dimensionsで長さを変えてみました。
プロパティシェルフにたくさんの項目が用意されていて、柵の変形が簡単に行えます。
例えば、Partsの値を増やすと格子の数が増えていきます。
Dimensionsを変えると全体の長さが変わるのでこれと合わせて、レーンの長さに合わせました。
Subsのチェックを外すと、下部の細かい縦棒が消えます。
このように細部も簡単に変更できます。
Railsの数を一つにしてみました。
Rail1の高さを調節しました。
ポストが長すぎるのでHeightで高さを変えました。
Altitudeで位置を調節しました。
このままではScaleが揃っていません。
全体のスケールを変えたい時に不便なので1に揃えます。
そのためにはCtrl + A -> Scaleをクリックします。
すると、大きさはそのままでScaleの値が揃います。
両サイドに柵をつけたいので、Shift + Dでコピーして片方を反対にもってきて、Shiftを押しながら両方の柵を選択します。
Ctrl + J で一つのオブジェクトに統合します。
ピボットが離れた場所にあるので、ツールシェルフのSet OriginからOigin to Center of Massを選択して中心に移動させます。
このままだとUnityにもっていったときに角度が変わるので、Unityに合わせて回転させてからエクスポートします。
参考:https://light11.hatenadiary.com/entry/2019/01/06/215851
Unityでアニメーションを付ける
Unityにもってきてシーンに配置しました。
柵が高すぎたので一段目をレーンの下に埋めて配置しました。
フェンスを上げ下げするアニメーションを作って、アニメーターコントローラーでステートの遷移を作りました。
オレンジのステートにはアニメーションが入っていません。
アニメーションの作成・遷移
Parametersの+ボタンからトリガーパラメーターを一つ作ります。
オレンジから灰色のステートの遷移と、灰色のステート同士の合計3つの遷移の矢印のインスペクタを全て同じ設定にしました。
スクリプトでSetTriggerメソッドを使うことでアニメーションを遷移できます。
fenceAnimator.SetTrigger("fence");
フェンスのデフォルトの位置を、レーンの下に完全に埋まった状態にしています。
フェンスの衝突設定
フェンスにはMeshコライダーをつけて、ボールが衝突するようにしています。
レーンとは衝突しないように、フェンスにレイヤーをつけて、Edit -> Project Settings… -> PhysicsのLayer Collision Matrixでレーンとフェンスにつけたレイヤー同士の交点のチェックを外します。