通过脚本隐藏/取消隐藏Unity3D中的对象

时间:2014-08-31 05:58:18

标签: unity3d gameobject

我希望在一切开始之前将我的场景的一部分设置为隐藏 所以,假设我有一些isHidden(我试图找到)属性,我之前或在我场景的第一帧设置为true

在某些时候我想取消隐藏它并触发动画,我知道如何触发动画。 并且我发现隐藏对象的唯一方法是将它设置为:

SetActive(false);

它确实隐藏了,但是当我尝试稍后在脚本中使用

访问它时
GameObject.Find("gameObjectName");

它返回null。 那么,通过脚本隐藏或隐藏GameObject的正确方法是什么。 这不是Mesh所以它没有网格渲染器。

1 个答案:

答案 0 :(得分:7)

使用 Renderer.enabled

bool enabled;
Description

Makes the rendered 3D object visible if enabled.

示例代码:

public class ExampleClass : MonoBehaviour {
    void Show() {
        renderer.enabled = true;
    }
    void Hide() {
        renderer.enabled = false;
    }
    void HideChildren()
    {
         Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>();
         foreach ( Renderer lRenderer in lChildRenderers)
         {
              lRenderer.enabled=false;
         }
    }
    void ShowChildren()
    {
         Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>();
         foreach ( Renderer lRenderer in lChildRenderers)
         {
              lRenderer.enabled=true;
         }
    }


}