我正在尝试在Unity中设置一个简单的隐藏和取消隐藏游戏对象,但似乎无法让我的编码正常工作。到目前为止我写的有什么问题。
#pragma strict
public var myObject :GameObject;
if (GUI.Button(new Rect(1120,930,100,50),"3D MODEL"))
{
gameObject.SetActive(true);
}
}
答案 0 :(得分:1)
你去,这应该解决你的问题。 http://answers.unity3d.com/questions/7776/how-to-make-an-gameobject-invisible-and-disappeare.html 祝你好运。
您可以通过禁用其MeshRenderer组件来关闭GameObject的渲染,例如
GetComponent(MeshRenderer).enabled = false;
您可以通过将GameObject设为非活动状态来完全禁用 e.g。
gameObject.active = false;
答案 1 :(得分:0)
尝试使用此代码而不是SetActive:
renderer.enabled = true; (to show the game object)
renderer.enabled = false; (to hide the game object)
如果游戏对象中有孩子,这段代码可能会有所帮助:
function Hide() {
if (#condition#) {
ToggleVisibility();
}
}
function ToggleVisibility() {
// toggles the visibility of this gameobject and all it's children
var renderers = gameObject.GetComponentsInChildren.();
for (var r : Renderer in renderers) {
r.enabled = !r.enabled;
}
}
(第二段代码来自:http://answers.unity3d.com/questions/14165/show-and-hide-a-prefab-or-gameobject.html)
答案 2 :(得分:0)
GameObject
一旦设置为非活动状态,就不会运行脚本。这本质上意味着它无法运行脚本再次将其自身设置为活动状态。外部来源必须是使其再次活跃的原因。