碰撞脚本无法正常工作?

时间:2016-07-24 02:34:20

标签: c# unity3d collision-detection collision unity5

在高级中我想说如果这是一个非常简单的问题和一个简单的答案,我道歉,因为我刚刚进入编程。基本上,我正在尝试创建一个名为蓝色的块的脚本(图片下面)与FPSController碰撞,会被破坏,这是我的脚本:

using UnityEngine;
using System.Collections;

public class Cube : MonoBehaviour {

    void OnCollisionEnter (Collision col) {

        if(col.gameObject.name == "Blue") {

            Destroy(col.gameObject);
            print ("collison detected");

        }

    }

}

由于某种原因,只要fps控制器与被称为“Blue”的对象发生碰撞就没有任何反应,print()函数不会被触发,也不会是destroy()函数 enter image description here

谢谢你提出;)

1 个答案:

答案 0 :(得分:0)

您的立方体中缺少

Rigidbody`。

1 。将Rigidbody组件附加到两个多维数据集。

2 。另外,将两个立方体Rigidbody设置为Is-kinematic。您必须将两个立方体Rigidbody设置为Is-kinematic,以便角色控制器无法移动它。请注意,如果您的多维数据集在添加Rigidbody后崩溃,只需在Use Graivty上停用Rigidbody

重要的:

3 。删除FPSController。由于您将与其他Rigidbody游戏对象进行交互,因此请使用RigidBodyFPSController。它可以在Assets\Standard Assets\Characters\FirstPersonCharacter\Prefabs中找到。将RigidBodyFPSController拖到场景中,然后将Cube脚本附加到它。

您会注意到Rigidbody附加了RigidBodyFPSController不要修改它的设置。

就是这样。一切都应该按预期工作。

Cube设置:

enter image description here

RigidBodyFPSController设置:

enter image description here