衝突判定
接触した時 : 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");
- 接触したオブジェクトを識別する>>タグ