2014-08-31 1 views
2

Я хочу, чтобы часть моей сцены была скрыта до начала всего, , поэтому давайте скажем, что у меня есть некоторая isHidden (которую я пытаюсь найти), которую я установил в true раньше, или в первом кадре моей сцены.Скрыть/показать объект в Unity3D с помощью скрипта

В какой-то момент я хочу показать его и запустить анимацию, я знаю, как запускать анимацию. и единственный способ я нашел разрядным объекта, чтобы установить его как:

SetActive(false); 

это шкура, но когда я пытаюсь получить к нему доступ в сценарии с

GameObject.Find("gameObjectName"); 

возвращается ноль. Итак, какой правильный подход скрывать или скрывать GameObject через скрипт. это не Mesh, поэтому он не имеет средства рендеринга сетки.

+0

SetActive не влияет на поиск, проверьте имя объекта правильно и уникальный – LearnCocos2D

+0

это имя: XwingScene он уникален. нет другого объекта, называемого подобным, и когда я пытаюсь получить к нему доступ после установки SetActive (false), он возвращает null –

+0

'это не сетка, поэтому у него нет рендеринга сетки.' Вы имеете в виду, что у него есть дети с сетками в Это? – Rudolfwm

ответ

7

использование Renderer.enabled

bool enabled; 
Description 

Makes the rendered 3D object visible if enabled. 

пример кода:

public class ExampleClass : MonoBehaviour { 
    void Show() { 
     renderer.enabled = true; 
    } 
    void Hide() { 
     renderer.enabled = false; 
    } 
    void HideChildren() 
    { 
     Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>(); 
     foreach (Renderer lRenderer in lChildRenderers) 
     { 
       lRenderer.enabled=false; 
     } 
    } 
    void ShowChildren() 
    { 
     Renderer[] lChildRenderers=gameObject.GetComponentsInChildren<Renderer>(); 
     foreach (Renderer lRenderer in lChildRenderers) 
     { 
       lRenderer.enabled=true; 
     } 
    } 


} 
+1

у каждого GameObject есть rendrer? –

+0

Gameobject.renderer является частью каждого игрового объекта. Но не каждый игровой объект имеет средство визуализации, и в этом случае он равен нулю. Хорошей новостью является то, что любой объект сцены, который виден (как вы описали), должен иметь средство визуализации. – Rudolfwm