Unity 스크립팅 매뉴얼 요약
스크립팅 개념
Unity의 스크립트는 기존의 지속적인 루프 프로그램과는 다르게 특정 이벤트에 따라 호출되는 함수로 구성됩니다. 함수가 실행되면 제어권이 Unity에 반환됩니다. 이러한 함수를 이벤트 함수라고 하며, 각 함수는 이름 규칙에 따라 호출됩니다.
주요 이벤트 함수
이벤트 함수 | 설명 |
---|---|
Start() | 오브젝트가 생성될 때 한 번 호출됩니다. |
Update() | 매 프레임마다 호출되어 화면 렌더링 전에 오브젝트 상태를 업데이트합니다. |
FixedUpdate() | 물리 엔진 업데이트를 위한 고정 주기로 호출됩니다. |
LateUpdate() | 모든 업데이트 후에 호출되며 카메라 등의 최종 위치를 조정할 때 유용합니다. |
Awake() | 씬이 로드될 때 모든 오브젝트에서 처음 호출됩니다. |
OnGUI() | GUI 요소를 그리고 사용자 입력을 처리하는 함수입니다. |
OnMouseXXX | 마우스 이벤트에 대한 반응을 처리합니다. |
OnCollisionXXX | 충돌 관련 이벤트 처리 함수입니다. |
예제 코드
1. Update 함수 예제
void Update() {
float distance = speed * Time.deltaTime * Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * distance);
}
이 코드는 사용자의 입력에 따라 오브젝트를 이동시키는 예제입니다. Update
함수는 매 프레임 호출되어 오브젝트의 위치를 변경합니다.
2. FixedUpdate 함수 예제
void FixedUpdate() {
Vector3 force = transform.forward * driveForce * Input.GetAxis("Vertical");
rigidbody.AddForce(force);
}
FixedUpdate
함수는 물리 연산을 위한 주기로 호출되며, 사용자의 입력에 따라 힘을 오브젝트에 추가합니다.
3. LateUpdate 함수 예제
void LateUpdate() {
Camera.main.transform.LookAt(target.transform);
}
LateUpdate
함수는 모든 업데이트가 완료된 후에 호출되어 카메라가 타겟을 계속 쳐다보도록 방향을 설정합니다.
GUI 이벤트 처리
void OnGUI() {
GUI.Label(labelRect, "Game Over");
}
OnGUI
는 GUI 요소를 처리하며, 사용자의 클릭과 같은 입력 이벤트를 신속하게 반응할 수 있도록 합니다.
물리 이벤트 처리 예제
void OnCollisionEnter(otherObj: Collision) {
if (otherObj.tag == "Arrow") {
ApplyDamage(10);
}
}
오브젝트가 충돌할 때, 해당 이벤트를 처리하여 적절한 반응을 실행합니다.
결론
Unity의 이벤트 함수는 게임 프로그래밍에서 매우 중요한 역할을 하며, 게임의 동작을 자연스럽게 제어하는 데 필수적입니다. 이러한 함수들을 적절하게 사용하면 더욱 효과적인 게임 개발이 가능합니다. 더 많은 함수와 세부 사항은 MonoBehaviour 클래스 스크립트 레퍼런스를 통해 확인할 수 있습니다.