SendMessage 는 "On + Action name"인 함수를 찾아서 호출하는 방식
Invoke Event 는 Inspector 상에서 Action에 함수를 성정하고 키 입력이 들어 왔을 때 호출
Invoke C sharp Evnets 는 C# 스크립트에서 Invoke Evnet 과정을 수행
FixedUpdate() 는 주로 물리 연산을 효과적으로 처리하기 위해 사용하는 것이다.
단점으로는 Update() 메서드와 다르게 매 프레임마다 호출되는 것이 아니기 때문에, 사용자 입력이나 빠른 반응이 필요한 로직에는 적합하지 않다.
LateUpdate() 는 Update 메서드 내의 모든 스크립트가 호출된후에 실행된다.
카메라 및 애니메이션 조정같은 오브젝트의 움직임에 따라 카메라나 오브젝트의 위치 조정에 적합하다.단점으로는 LateUpdate() 메서드는 필요한 경우에만 사용하는 것이 좋다.
불필요하게 사용하게 되면, 프레임당 처리 시간이 늘어나게 되므로 성능에 부담을 줄 수 있다.
GetComponent 는 다음과 같이 일반적으로 사용됩니다.
- 물리적요소(예:Rigidbody, Collider)의 속성에 접근하고 수정하기.
- GameObject에 부착된 사용자 정의 스크립트와 상호 작용하기
- 런타임 동안 게임 오브젝트의 행동을 동적으로 변경하기.
초기화를 위해 Start 또는 Awake 에서 GetComponent 를 사용하고, 성능 문제로 인해 Update 에서 사용하는 것은 피해라.
TryGetComponent() 함수는 Bool형의 함수로 해당 컴포넌트가 있을 경우, true, false 로 반환해주는 함수다.
방법
- public bool TryGetComponent(Type type, out 찾는컴포넌트 변수명);
- public bool TryGetComponent(out 찾는컴포넌트 변수명);
요청 시점에서 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어지는 함수다.
함수를 호출하면 리턴 값이 반환될 때까지 메인 스레드의 동작이 중지하게 되어 게임이 멈춘 것처럼 보일 수 있다.
사용되는 상황
확실하게 이루어져야 하는 기능을 호출 시 사용이 추천된다.
- 로그인, 토큰 생산 등의 로그인 기능
- 영수증 검증, 결재 아이템 받기 등의 과금 관련 기능
비동기 함수의 경우 비동기 함수를 호출한 쓰레드에서 해당 함수 호출에 대한 결과를 기다리지 않고 바로 다음 작업을 수행할 수 있다.
이때 로딩 같은 작업을 수행하면 사용자에게 프로그램이 멈춘 것이 아닌 데이터를 로딩 혹은 저장 주이라는 경험을 제공할 수 있다.
유니티 코루틴은 실행을 일시 정지하고 제어를 유니티에 반환 후, 다음 프레임부터 중단한 부분부터 이어서 할 수 있다.
작성 방법
- 코루틴은 IEnumerator라는 반환형으로 시작해야한다.
- yield retrun (+ 조건)이 반드시 함수 내부에 존재해야한다.
yield return 의 종류
- yield return null; : 다음 프레임에 실행 됨.
- yield return new WaitForSeconds( float ); : 매개변수로 입력한 숫자에 해당하는 초만 큼 기다렸다가 실행됨.
- yield return new WaitForSecondsRealtime( flaot ); : 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행됨.
- 그외 : yield return + new WaitForFixedUpdate / WaitForEndOfFrame 등...
- yield break;
시작 방법
StartCoroutine(함수이름());
StartCoroutine("함수이름");
유형
- 점 광원 : 모든 방향으로 균등하게 빛을 발산하는 광원
- 방향성 라이트 : 무한히 멀리 위치하여 한 방향으로만 빛을 발산하는 광원
- 스포트라이트 : 씬의 한 점에 위치하여 원뿔 모양으로 빛을 발산하는 광원
- 면 광원 : 표면 영역 전체에 걸쳐 균등하게 모든 방향으로 빛을 방출, 사각형의 한쪽 - 면에서만 빛을 방출하는 광원
속성 : 위치, 방향, 강도(intensiy), 색상(color), 범위(range), 각도(angle) 등이 있다.
그림자 : 라이트와 객체 사이의 관계에 따라 그림자는 라이트가 부딪히는 객체 뒤에 생성
Lighting Intensity Multiplier : 실제 환경의 빛을 조절한다.
Reflecting Intensity Multiplier : 실제 오브젝트에 반사되는 정도를 조절한다.