(この記事の使用環境: Unity 2018.1.0b9 Personal、Visual Studio Community 2017, Windows10)
Survival Shooter tutorial をやってみたので
これ ↓ をやってみたので、ポイントをメモしておこうかなと。備忘録的なやつ。
ではさっそく。
public変数の定義時に初期化した値はインスペクターの初期値になる
- Start内で初期化するのとは意味が異なる。
PlayerMovement.cs
- 書き方がすっきりしていて分かりやすい。Playerの動作を Move, Turning, Animating に分けてメソッド化している
- Turningでは、マウス位置とFloorのぶつかった位置を取得し、Playerとの相対位置から新しい向きを求め、Rigidbody.MoveRotation している
- FloorはQuadで作成し、MeshRendererは削除する。FloorのLayerはFloorにしておく
- 移動量や回転量にはTime.deltaTimeを掛けることによって、環境差異を吸収できる(やったほうがよい)
- 物を動かす処理はUpdate内ではなくFixedUpdate内で処理されるようにする
PlayerやEnemyを余計な物理演算で動かさない
UIの作成・設定
- Canvasの子要素全体の振る舞いを指定するのにCanvasGroupコンポーネントを使うと便利(Alpha、Intaractable、Block Raycasts)

- UIの編集をする際にはSceneビューの2Dボタンを押すとやりやすくなる
- HealthUIの作り方(スライダー使用)← (現バージョンなら)ScrollBarを使ったほうが作りやすそう
- Color.clear はRGBA を (0, 0, 0, 0) にする
- SceneビューでのCanvas内でのUI要素の並び順はそのまま描画順になる

- ScreenFaderとGameOverTextはAの値を0にして透明にしておき、必要なときにAの値を上げて表示する
- CanvasゲームオブジェクトのAnimationの設定を行う。ゲームオーバーの際、GameOverText:Scale, GameOverText:Text.Color.a, ScoreText:Scale, ScreenFader:Image.Color.a を時間経過に応じてアニメーションで動かす。

AnimationClipのEvent設定
敵キャラの発生
- EnemyをSpawnさせるEnemyManager.csでは、SpawnPointは複数指定するが、Enemyはひとつだけ指定するようになっている。これはEnemyManager.cs自体を複数アタッチし、敵種類ごとに設定する使い方のため。

気になったこと、バージョン差異による設定差異など
- PlayerMovement.cs : FixedUpdateのなかでInputをとっていいのかな?(入力の取得漏れが発生するのでInputはUpdate内に書いたほうがいいという情報あり)
- PlayerAC:Transition(Idle -> Move, Move -> Idle)で HasExitTime のチェックを外す必要あり
- PlayerAC:Transition(Any State -> Death)でCan Transition To Self のチェックを外す必要あり
今回は以上です。


コメント
コメント一覧 (3)
現在サバイバルシューター制作中なのですが、
どうしても主人公「player」の弾が、敵「zombunny」に当たりません…
動画や各サイトも確認し、一通りやり直したりもしたのですが、解決せず。
もし心当たりのポイントなどございましたらご教授いただければ幸いです。
レイヤーがshootableになっていないことが原因でした。
お騒がせ致しました。