GameObject Activate / DeActivate

public bool activeInHierarchy { get; }
씬 안에서 게임 오브젝트가 활성화 상태인지 알 수 있다. 이것은 activeSelf 의 속성이 true인 것 뿐만아니라 부모의 경우도 마찬가지로 활성화 됨을 보장한다.

public bool activeSelf { get; }
게임 오브젝트의 로컬 활성화 상태를 알 수 있다. 
GameObject.SetActive(true)로 엑티브 상태를 활성화해도 부모가 비활성 상태라면 씬 안에서 보이지 않는다.

public void SetActive(bool value); 게임 오브젝트를 활성화/ 비활성화 한다.


GameObject Destroy

public static void Destroy(Object obj, float t = 0.0F);
게임 오브젝트 또는 컴포넌트를 제거 한다. (옵션으로 t초 후 시간 지연가능) 실제 객체 파기는 현재 Update 루프 이후까지 지연되지만 렌더링 전에는 항상 수행된다.


public static void DontDestroyOnLoad(Object target);
새로운 씬을 로드할 때 장면의 모든 오브젝트가 우선 파괴되고 새로운 씬에 다음 오브젝트들이 로드된다. 

씬 레벨 로딩 중에 객체가 파괴되는 것을 막기 위해서는 DontDestroyOnLoad를 호출하여야 한다.

public static void DestroyImmediate(Object obj, bool allowDestroyingAssets = false);

(destroy는 Update에서 한프레임이 끝날 때까지 지연되는 이유로 만약 에디터모드에서 destroy 해야 할일이 있을 때는 DestroyImmediate를 사용해야한다.)

또는 싱글턴 패턴에서 객체를 하나만 유지해야 하는 경우, 기존 인스턴스가 존재할 때 추가 생성 되는 걸 막는 용도로 사용된다.


+ Recent posts