Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity 3d控制对象可见性_C#_Unity3d - Fatal编程技术网

C# Unity 3d控制对象可见性

C# Unity 3d控制对象可见性,c#,unity3d,C#,Unity3d,我有两个游戏对象,即objA和objB,后者是前者的孩子ObjA处于激活状态,B处于禁用状态。我希望objB在指针进入时出现,在指针退出时消失。我要的不是一次而是永远。 我尝试了以下附于objA的代码来控制objB的可见性,但没有成功。有人能帮我吗 using UnityEngine; using UnityEngine.EventSystems; public class eventvisbtoggle : MonoBehaviour { public void PointerEnt

我有两个游戏对象,即
objA
objB
,后者是前者的孩子
ObjA
处于激活状态,
B
处于禁用状态。我希望
objB
在指针进入时出现,在指针退出时消失。我要的不是一次而是永远。 我尝试了以下附于
objA
的代码来控制
objB
的可见性,但没有成功。有人能帮我吗

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);
    }
}

游戏对象的启用状态与其是否可见之间存在差异。active确定是否将脚本和其他组件附加到对象函数。称为渲染器的组件实际上是在场景中绘制游戏对象的组件。您要做的是禁用附着到对象的渲染器

foreach(var r in GetComponentsInChildren<Renderer>()){
    r.enabled = false;
}
foreach(GetComponentsInChildren()中的var r){
r、 启用=错误;
}

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

我回答了你的第一个问题,并为你提供了学习Unity和C#的链接。我认为你没有接受那个建议。祝你好运@程序员:非常感谢你的建议。我认为我的要求是非常基本的,是学习显示/隐藏和对象的第一阶段,没有其他要求。我相信这里有一些专家会指导我学习unity3d教程以外的内容,这些教程对于我这样的新手用户来说并不友好。“学习显示/隐藏的第一阶段”我向您展示了如何使用
SetActive
,您还没有接受它作为答案。这里没有专家可以指导你学习统一。stackoverflow不是一个教程网站。这是为了解决问题,你应该首先通过学习基础知识来帮助自己。如果Unity教程对您来说很难,请尝试youtube上Brackeys的教程。遵循一个教程并完成它,然后您将了解如何将ObjA和ObjB声明为GameObject,以及如何实现接口。