【问题标题】:On-collision script not working?碰撞脚本不起作用?
【发布时间】:2016-07-24 13:37:00
【问题描述】:

在高级我想说如果这是一个非常简单的问题和一个简单的答案,我很抱歉,因为我刚刚开始编程。基本上,我正在尝试创建一个名为蓝色块的脚本(图片下面)在与 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() 函数也不会被触发

感谢您的支持;)

【问题讨论】:

    标签: c# unity3d collision-detection collision unity5


    【解决方案1】:

    您的多维数据集缺少刚体。

    1. 将Rigidbody 组件附加到两个立方体。

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

    重要:

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

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

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

    Cube 设置:

    RigidBodyFPSController设置:

    【讨论】:

    • 我将“蓝色”设置为刚体,未选中运动学和未选中“使用重力”,但是我看到的唯一变化是在 FPS 控制器触摸它后立方体正在下落顺便说一句是要显示的图像:imgur.com/a/2BikD
    • “我将“蓝色”设置为刚体” 您不会将对象设置为刚体,而是将刚体附加到它上面。您可以将刚体附加到两个对象吗?
    • 我已经这样做了,我已经尝试过更改获取脚本的对象
    • 一个对象看起来像这样:imgur.com/a/B6xTu,另一个对象看起来像这样imgur.com/a/HwGPr
    • @SpikyCat 在您遇到新问题后重写了我的答案。现在应该没问题了。只需按照步骤正确操作即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多