Unity C# > UnityEngine : Object
카테고리: UnityDocs
태그: Unity Game Engine
공부하면서 알게된 것만 정리합니다.😀
👩🦰 UnityEngine.Object
- 유니티에 존재하는 모-든 컴포넌트와 오브젝트의 조상 클래스!
UnityEngine.Object
역시 C# 의 모든 클래스의 조상인System.Objec
의 자손이다.- 스크립트들은 모두 MonoBehaviour 를 상속받아야 유니티 게임 오브젝트의 컴포넌트로서 동작할 수 있다.
- MonoBehaviour 은 Object 의 자손이기 때문에 (직계는 아니다. 4대손 정도..!) 이 Object 의 멤버 변수 및 함수들을 내 것처럼 사용할 수 있는 것이다. 물려받았기 때문에!
🚀 변수/프로퍼티
✈ name
- 이 컴포넌트가 붙은 게임 오브젝트의 이름.
- “컴포넌트는 게임 오브젝트 그리고 첨부된 모든 컴포넌트와 같은 이름을 공유합니다.”
- 게임 오브젝트에 붙어있는 다른 컴포넌트들(스크립트들 포함)과도 이 오브젝트의 이름을 공유한다.
- https://docs.unity3d.com/kr/530/ScriptReference/Object-name.html
🚀 함수
✈ Destroy
public static void Destroy(Object obj, float t = 0.0F);
- 매개변수에 있는 오브젝트를 파괴한다.
Destroy(gameObject)
: 자기 자신 파괴Destroy(gameObject, float a)
: a초 뒤에 자기 자신을 파괴한다. 이렇게 시간을 줄 수도 있음.
✈ Instantiate
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
- 게임 플레이 도중에 매개변수에 들어온 오브젝트를 복사하여 게임 도중에 생성해낸다.
- 생성한 오브젝트를 리턴함.
- Instantiate(GameObject, Vector3(position), Quaternion(rotation))
- 위치와 회전 벡터를 추가로 매개변수로 넣어주어 찍어낼 오브젝트의 위치와 회전값을 설정할 수도 있다.
- 위치, 회전 지정 안해주면 랜덤 위치나 원점에서 생성됨.
✈ FindObjectOfType
public static Object FindObjectOfType(Type type);
- 씬 상의 모든 오브젝트들을 뒤져서 직접
<>
안에 있는 타입(오브젝트 형이라던가 컴포넌트 형)과 일치하는 오브젝트를 리턴해준다. - 활성화 되어 있는 오브젝트들을 대상으로만 검색해준다.
- 비활성화 되어 있는 오브젝트에선 찾을 수 없다.
✈ FindObjectsOfType
public static Object[] FindObjectsOfType(Type type);
- 씬 상의 모든 오브젝트들을 뒤져서 직접
<>
안에 있는 타입(오브젝트 형이라던가 컴포넌트 형)과 일치하는 오브젝트들을 찾아서 리스트로 리턴해준다. - 느리다. 이런 성능상에 문제 때문에
- Awake() 함수 안에서만 구현되거나 아주 적은 횟수로 호출되게끔 해야한다. 매프레임 실행되는 Update() 같은 함수에서는 호출 하지 말자 !
- ’s’가 빠진 FindObjectOfType<Object>() 함수는 처음 나오는 오브젝트 하나만 리턴해준다.
✈ DontDestroyOnLoad
public static void DontDestroyOnLoad(Object target);
- 다른 Scene으로 변경되더라도 파괴되지 않고 유지할 오브젝트를 지정하는 함수다.
- 인수로 넘긴 오브젝트가 절대 삭제되지 않도록 한다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기