衝突(collision)の判定

Ball と Wall の衝突を判定します。
  1. Ball を[←→]キーで移動して、Wall との衝突を判定します。
    [←→]キーでモデルを移動する Project は C# Script Key を参照して下さい。
  2. LeftWall を追加します。
    [GameObject][3D Object] から LeftWall の名前で Cube を追加して下さい。
    Position を「x:-5 y:1 z:0」に、Scale を「x:1 y:1 :3」に設定します。
  3. 続いて RightWall を追加します。
    LeftWall を右クリックから Duplicate して RightWall に名前を変更して下さい。
    Position を「x:5 y:1 z:0」に設定します。
    これで Ball の両側に Wall が配置されます。
  4. Ball を選択して [Component][Physics][Rigidbody] を追加します。
    移動するのは横方向だけなので、Constraints から Position の y と z にチェックを入れます。
    Rotation の x y z にもチェックを入れます。

  5. 画面左下の [Projectタブ][Createタブ] から [C# Script] を選択すると NewBehaviourScript.cs が作成されます。
    衝突を検出してメッセージを印字します。
    using UnityEngine;
    using System.Collections;
    
    public class NewBehaviourScript : MonoBehaviour
    {
        void Update()
        {
            float x = Input.GetAxis("Horizontal");
            transform.Translate(new Vector3(x * 0.2f, 0, 0));
        }
        void OnCollisionEnter()
        {
            Debug.Log("Hit!");
        }
    }
    
  6. NewBehaviourScript.cs を Ball にアタッチして下さい。
    Console タブをクリックして再生ボタンで実行して下さい。
    [←→]キーで操作して Wall に衝突する度にメッセージが表示されます。
  7. RightWall を識別して、メッセージを表示してみましょう。
    OnCollisionEnter() 関数を次のように修正して下さい。
        void OnCollisionEnter(Collision collision)
        {
            if (collision.gameObject.name == "RightWall")
            {
                Debug.Log("Hit! R");
            }
        }
    
  8. RightWall に衝突したときにだけメッセージが表示されます。

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Unity)