Awake 메소드 : 게임 오브젝트가 생성될 때 최초로 실행되는 함수. (초기에 한 번만 실행됨.)
void Awake() {Debug.Log("플레이어 데이터가 준비되었습니다.");}
Start 메소드 : 업데이트 시작 직전에 최초로 실행되는 함수. (한번만 실행됨.)
void Start() {Debug.Log("사냥 장비를 챙겼습니다.");}
오브젝트가 활성화될 때는 초기화와 물리연산 영역 사이에 위치.
OnEnable 메소드 : 오브젝트가 활성화할 때(Script 킴) 호출되는 함수. 오브젝트를 킬 때(활성화)마다 호출됨.
void OnEnable() {Debug.Log("플레이어가 로그인했습니다.");}
FixedUpdate 메소드 : 물리 연산을 수행하기 전에 실행되는 업데이트 함수. 보통 물리 연산과 관련된 로직만 넣음. (여러 번 작동)
void FixedUpdate() {Debug.Log("이동~");}
Update 메소드 : 게임 로직 업데이트 함수. 물리 연산과 관련된 로직을 제외한 나머지의 주기적으로 변하는 로직을 넣음.
void Update() {Debug.Log("몬스터 사냥!!");}
LateUpdate 메소드 : 업데이트 영역의 모든 로직들의 실행이 끝난 후 마지막으로 호출되는 함수. (ex) 캐릭터를 따라가는 카메라, 로직의 후처리)
void LateUpdate() {Debug.Log("경험치 획득.");}
OnDisable메소드 : 오브젝트가 비활성화될 때(Script 끔) 호출되는 함수.
void OnDisable() {Debug.Log("플레이어가 로그아웃했습니다.");}
OnDestroy 메소드 : 게임 오브젝트가 삭제될 때 실행되는 함수.
void OnDestroy() {Debug.Log("플레이어 데이터가 해체되었습니다.");}
Input : 게입 내 입력(키보드, 마우스)을 관리하는 클래스
void Update() {
if(Input.anyKeyDown)
Debug.Log("아무 키를 눌렀습니다.");
if(Input.anyKey)
Debug.Log("아무 키를 누르고 있습니다.");
if(Input.GetKeyDown(KeyCode.Return)) //Return은 Enter을 의미
Debug.Log("아이템을 구입하였습니다.");
if(Input.GetKey(KeyCode.LeftArrow)) //꾹 누르고 있을 때
Debug.Log("왼쪽으로 이동 중");
if(Input.GetKeyUp(KeyCode.RightArrow)) //꾹 눌렀다가 뗐을 때
Debug.Log("오른쪽 이동을 멈추었습니다.");
}
Vector3가 기본으로 제공하는 4가지 방법.
public class Move : MonoBehaviour
{
Vector3 target = new Vector3(8, 1.5f, 0);
void Update()
{
/* 1. MoveTowards(현재위치, 목표위치, 속도) : 등속 이동
transform.position =
Vector3.MoveTowards(transform.position, target, 1f);
*/
/* 2. SmoothDamp(현재위치, 목표위치, 참조 속도, 속도) : 부드러운 감속 이동 (속도 적게 줄수록 빠름.)
Vector3 velo = Vector3.zero;
transform.position =
Vector3.SmoothDamp(transform.position, target, ref velo, 1f);
*/
/* 3. Lerp(현재위치, 목표위치, 속도) : 선형 보간. SmoothDamp과 비슷. 마지막 매개변수에 비례하여 속도 증가(최대값 1/ 적게 줄수록 느림.)
transform.position =
Vector3.Lerp(transform.position, target, 0.05f);
*/
/* 4. Slerp(현재위치, 목표위치, 속도) : 구면 선형 보간
transform.position =
Vector3.Lerp(transform.position, target, 0.05f);
*/
}
}