衝突判定

Last-modified: 2023-12-27 (水) 23:05:53

衝突判定

接触した時 : OnCollisionEnter
侵入した時 : OnTriggerEnter
離れた時 : OnTriggerExit

OnCollosionEnter

Collider に接触したら true になる。

private void OnCollisionEnter(Collision collision){}

OnTriggerEnter

Colliderに侵入したら true になる。

private void OnTriggerEnter(Collider other){}
  • Colliderの[Is Trigger]を true にすること。
    • [In Trigger]は接触の検知は行なうが、実際に衝突はしないので注意。
 

接地判定

二段ジャンプを防ぐ目的などで使用する。
最初に bool 型の変数 IsGround を宣言し、true ならジャンプでき、false ならジャンプできないように記述する。

public bool IsGround; // 接地判定用のフラグ
if (IsGround) //プレイヤーが地面と接触しているなら
{
       Move(); // Playerが動くためのメソッドが記述してある
}
// プレイヤーが地面と接触しているなら
private void OnTriggerEnter(Collider other)
{
       IsGround = true;
}
// プレイヤーが地面から離れているなら
private void OnTriggerExit(Collider other)
{
       IsGround = false;
}
 

タグ処理

OnCollisionEnter のとき

collision.gameObject.CompareTang("TagName");

OnTriggerEnter のとき

other.gameObject.CompareTang("TagName");
  • 接触したオブジェクトを識別する>>タグ