2일차 - 캐릭터 움직이기

우선 캐릭터를 관리해줄 컴포넌트를 만들기 위해 Player라는 새로운 C# 스크립트를 생성해줍니다.

그리고 소스코드를 작성하기 전에 잠시 메뉴에서 Edit 탭의 Project Setting 안에 있는 Input을 선택해 줍시다.

그러면 이렇게 Insepector View가 Input Manager로 변하게 됩니다. 여기서는 여러가지 Input 설정을 관리할 수 있는데요.

일일이 키 하나하나의 입력을 감지하지 않고 이런식으로 Input을 관리하는 이유는 유니티로 여러 플랫폼을 개발할 경우 같은 기능을 하지만 플랫폼에 따라 조작키가 다른경우를 하나의 이름으로 묶어주기 위해서 사용합니다.

우리가 살펴 볼 부분은 Horizontal을 잠시 펼쳐서 살펴 봅시다. 기본적으로 음수 방향이 left고 양수 방향이 right로 되어있는 것을 확인하고, 대체 음수 방향이 A키, 대체 양수 방향이 D키로 되어있는 것을 확인합니다.

기본적으로 Horizontal Axes는 왼쪽, 오른쪽 방향키와 A,D키가 등록되어 있는 것을 확인하고 넘어 갑시다.

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {
    public const float moveSpeed = 5.0f;
    //움직이는 속도를 정의해 줍니다.
    void Start () {

    }

    void Update () {
        moveControl();
        //캐릭터를 움직이는 함수를 프레임마다 호출 합니다.
    }

    void moveControl()
    {
        float distanceX = Input.GetAxis("Horizontal") * Time.deltaTime * moveSpeed;
        //아까 지정한 Axes를 통해 키의 방향을 판단하고 속도와 프레임 판정을 곱해 이동량을 정해줍니다.
        this.gameObject.transform.Translate(distanceX, 0, 0);
        //이동량만큼 실제로 이동을 반영합니다.
    }
}

GetAxis는 지정된 Axes를 키에따라 다른 값을 가져 옵니다. 플랫폼 키 호환을 위해 사용되며, Horizontal 같은 경우엔 왼쪽류 키는 -1, 오른쪽류 키는 1을 반환합니다.

플레이어 스크립트를 마우스로 드래그해서 플레이어에 적용시켜봅시다.

실제로 플레이하고 왼쪽 오른쪽 방향키와 A, D키를 눌러서 조작을 해봅시다.

results matching ""

    No results matching ""