2015-10-14 5 views
0

Я пытаюсь настроить простой скрытый и скрытый игровой объект в Unity, но не может показаться, что мое кодирование работает правильно. Что случилось с тем, что я написал до сих пор.Setup hide/unhide GameOjbect в единстве

#pragma strict 

public var myObject :GameObject; 

    if (GUI.Button(new Rect(1120,930,100,50),"3D MODEL")) 

    { 
     gameObject.SetActive(true); 

    } 


} 
+0

http://gamedev.stackexchange.com/, возможно, будет лучше спросить (также проверьте http://answers.unity3d.com, сообщество здесь быстро и, возможно, узнайте больше о Unity3D, чем люди из SO)! В любом случае, ваш код здесь просто для того, чтобы отобразить игровой объект, не так ли? –

ответ

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)

+0

Да, в игровом объекте есть дети. может быть, причина, по которой я не могу скрыть и показать игровой объект. Я вижу, что флажок рендеринга сетки отключается, но сетка не появляется снова. – Coder

+0

Вы просто хотите скрыть объект или действительно установить его неактивным? Это не одно и то же. Был ли код, который я вам дал? –

+0

Я просто хотел скрыть и показать игровой объект. Это. – Coder

1

Там вы идете, это должно решить вашу проблему. http://answers.unity3d.com/questions/7776/how-to-make-an-gameobject-invisible-and-disappeare.html Удачи.

Вы можете отключить рендеринг в виде GameObject, отключив его MeshRenderer компонент, например

GetComponent(MeshRenderer).enabled = false; 

Вы можете отключить GameObject полностью, делая его неактивным, например,

gameObject.active = false; 
+0

Не только поместите ссылку, отправьте код с этого поста! Если сообщение исчезнет, ​​ссылка будет недоступна! –

+0

Вы правы, мои плохие им новые к этому :) –

+0

Нет проблем, я делал это много, получил пометку и прочее .. Изучение трудного пути ах ах! :) –

0

GameObject не работает сценарии, когда он будет установлен не-активным. По сути, он не может запустить скрипт, чтобы снова активировать себя. внешний источник должен быть тем, что снова активирует его.