OnCollisionEnter(碰撞事件)-> private void OnCollisionEnter(Collision collision)
- 碰撞双方必须是碰撞体(Conllision)
- 碰撞的主动方必须加刚体(Rigidbody)(所以刚刚不太适合判定状态)
- 碰撞体不能勾选IsTrigger
- 刚体不能勾选IsKinematic
OnTriggerEnter (触发事件) private void OnTriggerStay(Collider collision)
- 双方必须是碰撞体
- 其中一个必须加刚体(Rigidbody)
- 其中一个碰撞体必须勾选 IsTrigger
【Unity3d】碰撞体、刚体、OnTriggerEnter和OnCollisionEnter用法与区别_果子梨果果的博客-CSDN博客_unity3d刚体碰撞
上面链接说的很好
时间的判定
private void OnTriggerStay(Collider collision)
{
// 判断交互是否长于0; 后期要加上是否鼠标正在使用的这个事件。防止误触
if (timeLeft > 0)
{ timeLeft -= Time.deltaTime; }
countText.text = timeLeft.ToString(format: "0");
if (timeLeft <= 0)
{
_isFunfSekunden = true;
//这里后期加上游戏胜利
Debug.Log("gewonnen!!!");
}
print(this.name + "一直在和" + collision.gameObject.name + "接触");
}
private void OnTriggerExit(Collider collision)
{
if (!_isFunfSekunden)
{
timeLeft = 5f;
countText.text = timeLeft.ToString(format: "0");
}
}