InputManager을 이용한 캐릭터 움직임 구현하기 입니다.
해당 내용은 요즘엔 잘 사용하진 않지만 알아두면 좋기에 저장해둘 겸 작성하게 되었습니다.
유니티에서 움직임을 만들어 줄 오브젝트를 하나 만들으신 후 InputManager 스크립트도 만들어주세요
스크립트에 해당 내용을 작성해줍니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InputManager : MonoBehaviour
{
[SerializeField] private float speed;// 인스펙터창에서 수정가능하게 함
Rigidbody2D rb; // Rigidbody2D 형식의 rb라는 변수를 선언
private void Start()
{
rb = GetComponent<Rigidbody2D>(); // rb에 연결된 오브젝트의 Rigidbody2D를 담아줌
}
void Update()
{
//프레임마다 vertical축과 horizontal축을 가져옴
float vertical = Input.GetAxisRaw("Vertical");
float horizontal = Input.GetAxisRaw("Horizontal");
//입력값으로 움직일 방향을 나타내는 2D 벡터 생성
Vector2 direction = new Vector2(horizontal, vertical);
//direction을 정규화 하여 벡터의 길이를 1로 만듦
direction = direction.normalized;
//Rigidbody의 velocity를 방향 * 속도로 설정
rb.velocity = direction * speed;
}
}
그 후 이동을 구현할 오브젝트에 Rigidbody2D와 해당 스크립트를 넣어주고 speed(이동속도)를 설정하고
Rigidbody의 Gravity Scale(중력)를 0으로 바꿔주신뒤 플레이 해보시면 이동이 구현됩니다.