The one thing

[유니티 무료 버전으로 놀아보자 (5)]

- 2D 캐릭터에 움직임을 주다 -


 게임에서는 일단 움직이는 것이 중요합니다. 유니티에서 무엇인가를 움직이려면 스크립트를 사용해야 하는데 드디어 골치 아프기 시작하는 영역에 들어서는군요.


  뭐. 즐기자고 하는 일이니 쉽게 쉽게 해보자고요. 에셋 창에서 C# 스크립트를 생성하고 이름은 Character_move로 명명하였습니다. 이름 주는것은 제 마음이니까요. ㅎㅎ



  스크립트 아이콘을 더블클릭하면 모노디벨로프 라는 무시무시한 녀석이 나타납니다.



  메모장 같은 편집 창이 뜨는데 여기에 영어로 블라블라 적어줘야 됩니다. 유니티 공식 홈페이지에 가면 스크립트 레퍼런스가 있는데 죄다 꼬부랑 문자죠. 그냥 쉬운 거 몇 개 알아가지고 우려먹으면서 놀아야 할듯합니다.


using UnityEngine;

using System.Collections;


public class Ch : MonoBehaviour { 

/* 자기 마음대로 클래스 이름을 Ch로 명명하네요 */


// Use this for initialization

/* 시작할 때 한번 실행되는 부분이라고 합니다 */

void Start () {

}

// Update is called once per frame

/* 매 프레임 별로 실행한다는데 Cpu가 바쁠 듯 */

void Update () {

}

}


  이건 기본적으로 입력되는 값입니다. 키 입력에 따른 이동을 명령해야 하므로 Update 안에 이동 명령이 들어가야 하겠습니다.


  그전에 먼저 변수를 선언해 주는데 이렇게 하면 유니티 내에서 이걸 인식해서 변수의 수치를 쉽게 조절할 수 있는 칸을 만들어 줍니다.


  변수는 정수로 하면 그 간격이 매우 커져서 세밀한 조정이 가능하도록 소수점이 되는 실수로 선언합니다. (보통 그렇게 하더라고요.)


using UnityEngine;

using System.Collections;


public class Character_move : MonoBehaviour { 

/* 중요한 점. 스크립트 파일 이름과 클래스 이름을 동일하게 해주어야 합니다 */


float move_speed = 0.1f; 

/* 수치에 따른 반응 정도를 가늠하기 힘드니 대충 0.1을 잡았습니다 */


// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {

if (Input.GetKey (KeyCode.RightArrow)) {

transform.Translate (move_speed, 0, 0);

}

/* 엑셀을 했다면 좀 다루어 봤을 if문. 오른쪽 화살표 키를 입력하면 X 축으로 변수만큼 이동하라는 의미 입니다. */


if (Input.GetKey (KeyCode.LeftArrow)) {

Transform.Translate (-move_speed, 0, 0);

}

/* 반대로 왼쪽 화살표 키를 입력하면 X 축으로 마이너스(-) 변수만큼 이동합니다. */

}

}


  모노디벨로프에서 이렇게 만들어서 저장을 하고 다시 유니티로 돌아옵니다. 스크립트 아이콘을 끌어다가 자전거에 같다 놓으면 적용이 됩니다.


  

 이제 실행을 해보면,




  화살표 키 입력에 따라 자전거가 움직입니다. 캬캬캬


공유하기

facebook twitter kakaoTalk kakaostory naver band
loading