[유니티 무료 버전으로 놀아보자 (12)]
- 2D 애니메이션의 적용 3 -
using UnityEngine;
using System.Collections;
public class Character_move : MonoBehaviour {
float move_speed = 0.05f;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
GetComponent<Animator>().SetFloat("speed", 0.0f);
/* 평상시 애니메이터의 speed 변수를 0.0으로 유지합니다. */
if (Input.GetKey (KeyCode.RightArrow)) {
transform.Translate(move_speed, 0, 0);
GetComponent<Animator>().SetFloat("speed", 0.2f);
}
/* 오른쪽 화살표를 누르고 있을 때 캐릭터를 오른쪽으로 이동시키고 애니메이터의 speed 변수를 0.2로 만들어 줍니다. */
if (Input.GetKey (KeyCode.LeftArrow)) {
transform.Translate(-move_speed, 0, 0);
GetComponent<Animator>().SetFloat("speed", 0.2f);
}
/* 왼쪽 화살표를 누르고 있을 때 캐릭터를 왼쪽으로 이동시키고 애니메이터의 speed 변수를 0.2로 만들어 줍니다. */
if (Input.GetKeyDown (KeyCode.Space)) {
if (transform.position.y < 1){
GetComponent<Rigidbody2D>().AddForce (transform.up * 5, ForceMode2D.Impulse);
}
/* 이전에 만들었던 점프 구현 코드 */
}
}
}
최대한 간단하게 만들어 보았습니다. 복잡하면 저도 이해가 안 가기 때문이죠. ^_^; 내용을 보면 애니메이터의 변수를 상황에 따라 변경해 줘서 애니메이션을 구현하는 것입니다.
계획한 데로 작동이 잘 되고 있는 것을 확인할 수 있습니다.
그림판을 이용해서 직접 그린 그림이라 허접한 감이 없지 않아 있지만 유니티에서 2D 애니메이션 적용의 기초를 이해하는 데는 적당하지 않을까 합니다.
이상으로 유니티에서 애니메이션을 적용하는 내용에 대해서 알아보았는데요, 이를 고민하여 응용해 본다면 좀 더 그럴싸할 장면이 나올듯싶네요.