启用/禁用多个游戏对象的网格渲染器

时间:2016-10-15 11:50:22

标签: c# unity3d unity5

当玩家进入对撞机时,如何启用/禁用多个游戏对象的网格渲染器?这是我的代码,但它不起作用。

using UnityEngine;
using System.Collections;

public class SueloManager : MonoBehaviour {

private GameObject suelo;

void Start ()
{
    suelo = GameObject.FindGameObjectsWithTag ("SueloWireframe");
}

void OnTriggerEnter(Collider other)
{

    if (other.gameObject.tag == "Player") {

        suelo.GetComponent<Renderer> ().enabled = false;
        Debug.Log ("Oculta suelo");

    }
}

void OnTriggerExit(Collider other)
{

    if (other.gameObject.tag == "Player") {

        suelo.GetComponent<Renderer> ().enabled = true;
        Debug.Log ("Aparece suelo");

    }
}
}

1 个答案:

答案 0 :(得分:0)

win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../message/release/ -lmessage else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../message/debug/ -lmessage else:unix: LIBS += -L$$OUT_PWD/../message/ -lmessage INCLUDEPATH += $$PWD/../message DEPENDPATH += $$PWD/../message 返回单个GameObject,FindGameObjectWithTag返回GameObject数组。就像提到的 Kroltan 一样,您必须将FindGameObjectsWithTag更改为数组,然后使用循环启用和禁用所有这些。将循环置于简单的可重用函数中应简化此操作。请查看以下解决方案中的suelo函数。

EnableRenderer