Update는 유니티에 사용되는 함수로 Transform을 사용하고 매 프레임마다 동작한다. 캐릭터가 움직일 때 Update 안에 식을 작성하여야 한다.
void Update(} { //코드 작성 }
GetKeyDown은 키를 누를때 발생한다.
void Start() { if(Input.GetKeyDown(KeyCode.Space)) //스페이스를 누를 때 발생 print("스페이스 키 눌림"); }
스페이스 키 눌림
GetKey는 키를 누르는 동안 발생한다.
void Update() { if(Input.GetKey(KeyCode.Space)) //스페이스를 누르는 동안 발생 print("스페이스 키 누르고 있음"); }
스페이스 키 누르고 있음
GetKeyUp은 키를 땔 때 발생한다.
void Update() { if(Input.GetKeyUp(KeyCode.Space)) //스페이스에서 손을 땔 때 발생 print("스페이스 키 땜"); }
스페이스 키 땜
Translate는 position와 비슷하게 해당 좌표로 움직인다. Translate는 local 좌표를 기준으로 하고 position은 global 좌표를 기준으로 한다는 차이점이 있다.
성능이 다른 두 컴퓨터를 이용할 때 화면에 나타나는 결과가 같게 해줌.
한 프레임이 0.25초마다 출력하는 컴퓨터와 한 프레임이 0.5초마다 출력하는 컴퓨터가 있다고 하고 플레이어의 좌표가 0에서 4까지 움직이는 것을 출력할 때 첫 번째 컴퓨터는 한 프레임당 1씩 움직이고 두 번째 컴퓨터는 2씩 움직인다. 만약 Time.deltaTime을 사용하지 않는 경우 프레임당 1씩 움직인다 치면 첫 번째 컴퓨터는 1초 후에 4라는 좌표로 움직인 반면 두 번째 컴퓨터는 2라는 좌표로 움직이는 경우가 생긴다.
void Update() { float x = transform.position.x; x = x + 0.01 * Time.deltaTime; }
GetKey와 Time.deltaTime을 이용하여 키를 받아 wasd로 움직일 수 있다.
void Update() { float x = 0.0f, z = 0.0f; if (Input.GetKey(KeyCode.W)) z += speed; else if (Input.GetKey(KeyCode.S)) z -= speed; if (Input.GetKey(KeyCode.D)) x += speed; else if (Input.GetKey(KeyCode.A)) x -= speed; z *=Time.deltaTime; x *= Time.deltaTime; transform.Translate(x, 0.0f,z); }