マウスで選択したオブジェクトの色を変更する(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を使用
    という形で明確に使い分けた方が良さそう…?

    uGUIでポーズボタンを実装する

    ボタンを追加する

    まず、Create > UI > Canvas でCanvasを生成
    その後、Canvas以下にCreate > UI > Button でButtonを生成
    0000100002

    Button以下のTextのTextコンポーネントの文字列を変更
    00003

    画面左下にボタンが表示される
    00004

    ポーズ用スクリプトを作成

    ボタンが押されると、Time.timeScaleを変更するスクリプトを作成

    作成したスクリプトをButtonオブジェクトにアタッチして、ボタンを押した際のイベントを設定する
    ここでは作成したPauseButtonのonClick()を指定
    00005

    実行中にボタンを押してみると、ポーズ状態になっている
    しかし、フレーム自体は経過している為、フレーム毎にオブジェクトを生成したり動かしている場合は処理が動き続けるので注意
    00006