Unity C# > UnityEngine : Object

Date:     Updated:

카테고리:

태그:

공부하면서 알게된 것만 정리합니다.😀

👩‍🦰 UnityEngine.Object

  • 유니티에 존재하는 모-든 컴포넌트와 오브젝트의 조상 클래스!
  • UnityEngine.Object 역시 C# 의 모든 클래스의 조상인 System.Objec의 자손이다.
  • 스크립트들은 모두 MonoBehaviour 를 상속받아야 유니티 게임 오브젝트의 컴포넌트로서 동작할 수 있다.
    • MonoBehaviour 은 Object 의 자손이기 때문에 (직계는 아니다. 4대손 정도..!) 이 Object 의 멤버 변수 및 함수들을 내 것처럼 사용할 수 있는 것이다. 물려받았기 때문에!

🚀 변수/프로퍼티

✈ name

  • 이 컴포넌트가 붙은 게임 오브젝트의 이름.
  • “컴포넌트는 게임 오브젝트 그리고 첨부된 모든 컴포넌트와 같은 이름을 공유합니다.”


🚀 함수

✈ 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으로 변경되더라도 파괴되지 않고 유지할 오브젝트를 지정하는 함수다.
  • 인수로 넘긴 오브젝트가 절대 삭제되지 않도록 한다.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UnityDocs 카테고리 내 다른 글 보러가기

댓글 남기기