キーボードやコントローラーで入力した方向にオブジェクトを移動させる

キーボードやコントローラーから前後左右の入力を取得(Input.GetAxis)し、その値をオブジェクトのpositionに足して移動させる

入力された値を使ってオブジェクトのpositionを単純に変更しているだけなので、移動している方向へオブジェクトの向きを変更したり、カメラの方向に応じて移動させる方向を変えたりする必要が出てくる
オブジェクトの向きはpositionを変更する前にTransform.LookAtを使って移動先の方向へ回転させている。

別のシーンに遷移させる

現在のシーンから別のシーンへ遷移するスクリプト

これをつかって、
ロゴ表示 > タイトル画面 > ゲーム画面 といったフローを実装してみよう

FPSを計算する

実行中のFPSを計算して取得できるようにしてみた
毎フレーム計算させるのは無意味…?

マウスで選択したオブジェクトの色を変更する(RayCast)

画面に表示されているオブジェクトにマウスを当てると、オブジェクトの色が変わるスクリプトを作ってみた


マウス位置のレイを投げるスクリプト(RayCast.cs)を空のGameObjectにアタッチする


オブジェクトの色を変更するスクリプト(ChangeColor.cs)を対象のオブジェクトにアタッチする(ここではCubeのPrefab)

00008

イベント関数の呼び出し順を確認してみる

イベント関数(Start,Awake,Update,FixedUpdate,LateUpdate)がそれぞれどのタイミングで呼ばれるのか確認してみた

ログを確認した結果

  • AwakeがStartの前に実行される
  • Startの後、UpdateとFixedUpdateが実行される
  • Updateの後、必ずLateUpdateが実行される
  • UpdateとFixedUpdateは別々に呼ばれ、同期はしていない
  • フレーム毎の処理はUpdate,LateUpdateを使用
    物理挙動毎の処理はFixedUpdateを使用
    という形で明確に使い分けた方が良さそう…?