본문 바로가기
unity

이동.

by kcj3054 2022. 7. 7.

이동

  • 이동을 할 때 는 update문에 써야한다 주기적으로 계속이동을해야하니 아래 코드를 먼저 보자..
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public Grid _grid;
    private Define.MoveDir _dir = Define.MoveDir.None;

    public float _speed = 2.0f;

    private bool _isMoving = false;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        GetDirInput();

        if (_isMoving == false)
        {
            switch (_dir)
            {
                case Define.MoveDir.Down:
                    break;
            }
        }
    }

    void GetDirInput()
    {
        if (Input.GetKey(KeyCode.W))
        {
            transform.position += new Vector3(0, _speed) * Time.deltaTime ;
        }
        else if (Input.GetKey(KeyCode.S))
        {
            transform.position += new Vector3(0, -1 * _speed) * Time.deltaTime ;
        }
        else if (Input.GetKey(KeyCode.A))
        {
            transform.position += new Vector3(-1 * _speed, 0) * Time.deltaTime ;
        }
        else if (Input.GetKey(KeyCode.D))
        {
            transform.position += new Vector3(_speed, 0) * Time.deltaTime ;
        }
    }
}
  • 이동을 할 때 GetDirInput 함수를 통해서 직접 이동하는 것이 아니라, 이동이 가능하다는 상태만 있어야한다, 해당 캐릭터만 움직이는 것이 아니라 해당 캐릭터의 움직임을 다른 캐릭터도 보아야하기에 그렇다.

'unity' 카테고리의 다른 글

coroutine  (0) 2022.07.09
0708  (0) 2022.07.08
state 패턴.  (0) 2022.07.08
rigidbody, collider.  (0) 2022.07.06
에러_ (not found Tilemap)  (0) 2022.07.06