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,以及如何实现接口。