如果我将OnCollisionStay或OnTriggerStay添加到我的Zombies的EnemyController中,他们就不会使用Tag触发我的播放器。我的FPSController标有"播放器"。
以下是我的EnemyController受影响的代码:
private void OnCollisionStay(Collision collision)
{
Debug.Log("Collision " + collision.gameObject.name);
if (collision.gameObject.tag == "Player") {
Debug.Log("TEST");
if (Attack()) {
collision.collider.SendMessageUpwards("PlayerDamage", damage, SendMessageOptions.RequireReceiver);
Debug.Log("Player Damage");
}
}
}
Debug.Log(" TEST");没有打电话。
以下是来自" FPSController"的检查器设置。我的播放器。
这里是我的敌人检查员设置:
提前致谢。
答案 0 :(得分:1)
如果您希望两个物体相互碰撞:
Collider
Rigidbody
设置为non-Kinematic
OnCollisionXXX
的脚本(只有当你想要"捕获"碰撞消息时才需要这一点)在这里,您的播放器没有对撞机,因此无法检测到碰撞。
来源:https://unity3d.com/fr/learn/tutorials/topics/physics/colliders?playlist=17120
碰撞器是一个组件,允许他们附加的游戏对象对其他碰撞器作出反应,前提是其中一个游戏对象附有刚体组件。
请注意,对于要发送的OnCollision消息,碰撞的两个对象之一必须具有刚体组件。