이때까지 작은 프로젝트를 하면서 썼던 함수들을 정리 해보려고 합니다.
생명주기
Awake(): 오브젝트가 처음 켜질 때 단 한 번 실행.
Start(): Awake 직후, 첫 Update가 실행되기 전에 단 한 번 실행.
Update(): 게임 실행 동안 매 프레임 반복해서 실행.
충돌 이벤트
OnCollision(Exit,Stay,Enter)(): 물리적으로 오브젝트와 부딪히는 순간 실행.
게임 오브젝트와 컴포넌트 제어
GetComponent<T>(): T 컴포넌트를 찾아서 가져옴.
CompareTag(string): 태그가 입력한 문자열과 같은지 검사.
GameObject.FindGameObjectWithTag(string): 해당 태그를 가진 오브젝트를 찾아옴.
Instantiate(Object, position, rotation): 프리팹으로 만든 객체를 찍어냄.
Destroy(Object): 오브젝트를 씬에서 완전히 파괴하고 메모리에서 삭제시킴.
SetActive(bool): 오브젝트를 파괴하지 않고 눈에 보이게 하거나 안 보이게 함.
트랜스폼
transform.Translate(Vector3): 오브젝트를 지정된 방향과 거리만큼 순간이동 시킴.
transform.Rotate(Vector3): 오브젝트를 지정된 축을 기준으로 회전시킴.
Vector3.zero, Vector3.one: 각각 (0, 0, 0)과 (1, 1, 1)을 의미.
Vector3.forward, Vector3.right, Vector3.up: 각각 앞, 오른쪽, 위쪽을 가르키는 방향 벡터.
Vector3.Distance(a, b): a와 b 사이의 실제 거리
.normalized: 벡터의 방향은 유지하고 크키를 1로 만들어줌. 순수 방향만 필요할 때 씀.
Quaternion.LookRotation(Vector3): 목표 방향을 바라보게 회전.
Quaternion.Slerp(a, b, t): 현재 회전값 a에서 목표 회전값 b까지 부드럽게 회전시킴.
입력 및 시간
Input.GetAxis(string): 축 입력을 받음. 키보드를 꾹 누르고 있으면 0에서 1까지 서서히 부드럽게 값이 올라가고 내려감.
Time.deltaTime: 프레임 간의 걸리는 시간. 성능이 다른 컴퓨터에서도 똑같은 거리와 똑같은 시간으로 이동하게 만들어줌.
Cursor.lockState = CursorLockMode.Locked: 마우스 커서를 화면 중앙에 안보이게 고정시켜줌.
물리
Rigidbody.AddForce(Vector3, ForceMode): 오브젝트에 물리적인 힘을 가함.
Rigidbody.linearVelocity, angularVelocity: 물체가 날아가는 직선 속도와 팽이처럼 도는 회전 속도.
애니메이션
Animator.StringToHash(string): 애니메이터 파라미터 이름을 유니티 내부에서 쓰는 고유 번호로 바꿔줌. 문자열로 계속 검색하는 것 보다 숫자로 찾는 게 컴퓨터 입장에서 훨씬 빠르고 최적화에 좋음.
SetBool, SetFloat, SetTrigger: 애니메이터 파라미터 변수의 값을 바꿔줌.
구조
List<GameObject>: 동적 배열. 크기가 늘었다 줄었다함.
[SerializeField]: 직렬화. private 변수지만 유니티 에디터 내부에서 값을 수정 할 수 있게 해줌.
기타
Random.Range(min, max): 최소값과 최대값 사이의 무작위 숫자를 뽑음.
SceneManager.GetActiveScene().name: 현재 실행 중인 씬을 문자열로 가져옴.
CinemachineCamera.Priority: 카메라의 시점 값. 숫자가 높으면 우선순위가 높음.(카메라를 높은쪽으로 가져옴)
CinemachineImpulseSource.GenerateImpulse(): 카메라에 강한 흔들림을 발생시킴.
return 될 때 까지 한 번에 실행됩니다. yield return 될 때 실행을 멈추고 유니티의 다음 프레임으로 넘어갑니다. 게임은 계속 돌아가고 조건이 만족되면 멈췄던 부분부터 다시 실행합니다.IEnumerator, yield return: 함수의 실행을 잠시 멈췄다가, 다음 프레임이나 일정 시간 후에 이어서 실행하게 해주는 기능.
yield return null: 1프레임 쉬고 다음 프레임에 이어 실행.
yield return new WaitForSeconds(float): 지정한 시간만큼 코드를 멈춤.
yield break: 함수의 return과 같음. 코루틴을 그 자리에서 즉시 종료.
StartCoroutine(), StopCoroutine(): 코루틴을 시작하고 중단시키는 함수. FSM상태가 꼬이지 않게 Stop해줘야함.
yield return new WaitForSeconds(2f) 한 줄이면 됩니다.