FirstPersonController碰撞功能未被调用

时间:2017-09-16 08:28:53

标签: c# unity3d controller

如果我将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"的检查器设置。我的播放器。

enter image description here

这里是我的敌人检查员设置:

enter image description here

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您希望两个物体相互碰撞:

  1. 两个对象都必须有Collider
  2. 两个对象中至少有一个必须将Rigidbody设置为non-Kinematic
  3. 这两个对象中至少有一个必须有一个实现OnCollisionXXX的脚本(只有当你想要"捕获"碰撞消息时才需要这一点)
  4. 在这里,您的播放器没有对撞机,因此无法检测到碰撞。

    来源:https://unity3d.com/fr/learn/tutorials/topics/physics/colliders?playlist=17120

      

    碰撞器是一个组件,允许他们附加的游戏对象对其他碰撞器作出反应,前提是其中一个游戏对象附有刚体组件。

         

    请注意,对于要发送的OnCollision消息,碰撞的两个对象之一必须具有刚体组件。

相关问题