【问题标题】:Unity How to turn off a gameObject's Mesh Collider when a collison on another object is done?Unity如何在另一个对象上发生碰撞时关闭游戏对象的Mesh Collider?
【发布时间】:2018-08-23 10:08:17
【问题描述】:

在我的统一项目中,我遇到了一个问题,我想与一个对象发生碰撞,然后我想打开另一个游戏对象的网格碰撞器,这是我现在的代码......

#pragma strict

private var objManager : ObjectiveManager;
private var ob2 : MeshCollider;

function Start()
{
    objManager = GameObject.Find("3rdPersonController").GetComponent(ObjectiveManager);
    ob2 = GameObject.Find("Objective2").GetComponent(MeshCollider);

}

function OnTriggerEnter(other : Collider)
{
    if(other.gameObject.tag == "3rdPersonController")

            ob2.enabled = true;
            Debug.Log("whooop");
            Destroy(gameObject);
            objManager.objective1 = true;
            objManager.objective2 = false;
            objManager.objective3 = false;
            objManager.objective4 = false;
            objManager.objective5 = false;
            objManager.objective6 = false;
            objManager.objective7 = false;
            objManager.objective8 = false;
            objManager.objective9 = false;
            objManager.objective10 = false;
            objManager.objective11 = false;
            objManager.objective12 = false;



}

【问题讨论】:

  • 天哪,谢谢兄弟
  • 对不起,我删除了我的评论。大括号是解决问题的方法吗?
  • 是的,if 语句甚至没有做任何事情,它就在那里,哈哈

标签: unity3d components unityscript


【解决方案1】:

只是将其发布为答案,以便可以将其关闭。

这里的问题是你的 If 语句没有花括号,导致它后面的代码不管布尔值如何计算都会运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多