728x90
Enable() & Disable()함수를 활용한 컴포넌트 활성화
Enable/Disable함수는 오브젝트에 적용된 컴포넌트의 활성화 및 비활성화 여부를 설정하는 함수이다.
위 코드는 myLight에 Light 컴포넌트를 가져오고, enalbed을 적용하여 인스펙터 창에서 쉽게 켜고 끌 수 있는
토글 스위치처럼 만들었다.(bool 형식을 가져온 것)
그리고 Input.GetKeyUp(KeyCode.Space)를 적용하여, Space바를 눌러 Light 컴포넌트를 쉽게 활성화/비활성화 하도록 설정하였다.
SetAcitve() 함수를 활용한 오브젝트 활성화
SetAcitve함수는 오브젝트의 활성화/비활성화 여부를 가져오는데 마찬가지로 bool 형식을 따른다.
Enabled/Disabled함수는 오브젝트에 적용된 컴포넌트 활성화 여부라면 SetActive는 오브젝트 그 자체의 활성화 여부를 판단한다는 것에서 차이점이 있다.
※활성화 여부를 체크하는 과정에서 주의할 점이 있는데 Debug.Log를 통해 콘솔 창의 결과값으로 확인해볼 수 있다.
부모-자식으로 계층화된 오브젝트에서 부모가 활성화되어 있지만 자식이 비활성화된 경우, 자식은 그대로 비활성화 될 것이다.
하지만 부모가 비활성화되고 자식은 활성화된 경우,
자식 오브젝트 역시 비활성화 된다.(부모의 활성화 여부를 따르게됨)
이 경우 부모의 비활성화에 따라 자식까지 인스펙터 창이 회색으로 변하지만 자식 오브젝트에 체크박스는 그대로 체크되어 있음(활성화 표시)을 주의하자.
유니티 실행 함수 속성 및 특징 비교
함수명 | 함수 속성 |
Awake | •스크립트가 실행될 때 한번만 호출되는 함수다. •주로 게임의 상태 값 또는 변수의 초기화에 사용된다. •Start 함수가 호출되기 전에 맨 먼저 호출된다. •스크립트가 비활성화돼 있어도 실행된다. •코루틴 사용 불가 |
Start | •Update 함수가 호출되기 전에 한 번만 호출된다. •스크립트가 활성화돼 있어야 실행된다. •다른 스크립트의 모든 Awake가 모두 다 실행된 이후에 실행된다. |
Update | •프레임마다 호출되는 함수로 주로 게임의 핵심 로직을 작성한다. •스크립트가 활성화돼 있어야 실행된다. |
LateUpdate | •모든 Update 함수가 호출되고 나서 한 번씩 호출된다. •순차적으로 실행해야 하는 로직에 사용한다. •카메라 이동 로직에 주로 사용하는 함수다. •스크립트가 활성화돼 있어야 실행된다. |
FixedUpdate | •주로 물리엔진을 사용하는 경우에 시간 간격으로 힘을 가할 때 사용하는 함수다. •발생하는 주기가 일정하다. |
OnEnable | •게임오브젝트 또는 스크립트가 활성화됐을 떄 호출된다. •이벤트 연결 시 사용한다. •코루틴 사용 불가 |
OnDisable | •게임오브젝트 또는 스크립트가 비활성화됐을 때 호출된다. •이벤트 연결을 종료할 떄 사용한다. •코루틴 사용 불가 |
OnGUI | •레거시 GUI 관련 함수를 사용할 떄 사용한다. |
728x90
'게임 프로그래밍 > C#' 카테고리의 다른 글
C# 유니티 LookAt & Find (0) | 2021.07.28 |
---|---|
C# 유니티 함수 Translate and Rotate (0) | 2021.07.25 |
C# 유니티 함수 Update and FixedUpdate (0) | 2021.07.21 |
C# 유니티 함수 Awake and Start (0) | 2021.07.21 |
C# 접근 한정자 공개/은닉 Scope and Access Modifiers (0) | 2021.07.21 |