Inspector中左上方的Unity(4.6)中有一个复选框。我可以取消选中以隐藏"图像:s,按钮:s,什么不是。它到底是做什么的?我可以从脚本中取消隐藏所述对象吗?我确实试过打开和关闭。但是没有任何反应;如果未选中该复选框,则无法再从脚本中再次显示该元素。不幸的是,因为在设计2D游戏领域时,您通常希望首先将所有图形放在画布上以使其正确适合,然后隐藏它以便具有画布设计的一种默认的空状态。或者,偶尔显示的所有可能标签和内容都会使Unity编辑器中的设计画布混乱。
答案 0 :(得分:3)
它允许您停用和激活游戏对象。不会绘制非活动的gameobjets,他们的Update()
将不会被调用,并且您将无法使用Find()
找到它们,因此,您必须保存对您要转向的任何对象的引用稍后在剧本中。
开启/关闭:http://docs.unity3d.com/ScriptReference/GameObject.SetActive.html
检查是否明确打开/关闭:http://docs.unity3d.com/ScriptReference/GameObject-activeSelf.html
检查是否开启/关闭,因为父母已开启/关闭:http://docs.unity3d.com/ScriptReference/GameObject-activeInHierarchy.html
答案 1 :(得分:1)
该复选框与<...thing...>.SetActive(false);
相同(其中&lt; ... thing ...&gt;是相关的组件或游戏对象)。
http://docs.unity3d.com/ScriptReference/GameObject.SetActive.html
一旦某个组件设置为“未激活”(通过脚本或通过该复选框),除非您有一个存储的引用,即GetComponent<T>()
,Find()
和另一个',否则您无法访问它搜索'功能无法看到它。
如果您有一个“控制器”脚本,其中包含各种文本/图像的var /您希望通过脚本激活的任何内容,并在检查器中拖放对象,您将获得引用。或者,您可以使用脚本来获取start()
函数中的引用,然后将它们设置为active = false。
这个统一的答案很好地涵盖了启用vs活动:http://answers.unity3d.com/questions/25945/what-is-the-difference-between-these-three-ways-of.html