Unity 3d控制对象可见性

时间:2016-04-06 03:59:25

标签: c# unity3d

我有两个游戏对象,即objAobjB,后者是前者的孩子。 ObjA处于有效状态,B已停用。我想在指针进入时出现objB并在指针退出时消失。我想要这不仅仅是一次,而是永远。 我尝试使用objA附加的代码来控制objB的可见性,但它不成功。有人可以帮助我PLZ:

using UnityEngine;
using UnityEngine.EventSystems;

public class eventvisbtoggle : MonoBehaviour
{
    public void PointerEnter(BaseEventData eventData)
    {
        ObjB.gameobject.SetActive(true);
    }

    public void PointerExit(BaseEventData eventData)
    {
        ObjB.gameobject.SetActive(false);
    }
}

1 个答案:

答案 0 :(得分:0)

GameObject的启用状态与其是否可见之间存在差异。 active确定脚本和附加到对象的其他组件是否起作用。一个名为Renderer的组件实际上是在场景中绘制GameObject的。您要做的是禁用附加到对象的渲染器

foreach(var r in GetComponentsInChildren<Renderer>()){
    r.enabled = false;
}

请注意,这是非常慢的代码,您应该使用编辑器为脚本分配适当的渲染器,但这只是一个示例。