반응형
게임을 만드는 기초 기술 중 하나는 바로 컨트롤이다.
일반적으로는 주인공이 되는 유닛을 내 마음대로 조정할 수 있어야한다.
그럴때 비로서 게이머는 내가 게임을 하고있구나 하고 느낄 수 있다.
그런면에서 오늘은 내 유닛을 컨트롤 해보자.
상.하.좌.우 움직임이며, 조작은 키보드를 우선으로 한다.
예시 영상은 하기와 같다.
위 조작을 위해서는 하기 스크립트가 동작해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OnKeyPress : MonoBehaviour
{
bool direction = false;
float speedX = 0, speedY = 0;
// Update is called once per frame
void Update()
{
//키 값이 없을때는 움직이지 않도록.
speedX = 0; speedY = 0;
//오른쪽 설정
if (Input.GetKey("right"))
{
direction = false;
speedX = 2;
}
//왼쪽 설정
if (Input.GetKey("left"))
{
direction = true;
speedX = -2;
}
//위로 설정
if (Input.GetKey("up"))
{
speedY = 2;
}
//아래로 설정
if (Input.GetKey("down"))
{
speedY = -2;
}
}
// 일정한 간격에 실행. 움직임 구현
void FixedUpdate()
{
this.transform.Translate(speedX/50, speedY/50, 0);
this.GetComponent<SpriteRenderer>().flipX = direction;
}
}
|
cs |
신경써야 할 부부은
Update() 에서는 키 값을 입력받고,
FixedUpdate() 에서는 전달값 키 값을 세팅하여 실제 이동을 한다.
플랫폼 성능에 따라 실시간으로 실행되는 프레임 구조를 가진 Update()가 키 값을 입력받기에는 좋다.
50프레임의 일정한 실행 간격을 가지는 FixedUpdate()는
캐릭터를 움직이는 코드가 적절히 들어가는 것이 유효하다.
감사합니다 :)
반응형
'앱 만들기 > 유니티2D 게임 만드는 방법' 카테고리의 다른 글
유니티-키보드로 오브젝트 움직이기(2) (2) | 2021.06.06 |
---|---|
유니티-비주얼스튜디오 연동하기 IntelliCode 사용하기 (2) | 2021.06.01 |
유니티-오브젝트 반전 하기. (1) | 2021.05.30 |
유니티-오브젝트 회전하면서 앞으로 이동하기 (1) | 2021.05.29 |
유니티 - 오브젝트 Y축으로 회전하기. (1) | 2021.05.28 |
댓글