유니티 2D 이동

유니티 2D 이동

유니티 2D 이동 간단하게 구현해보기.

(Gravity를 사용하지 않는 이동. 쯔꾸르, 탑뷰)

그냥 이동 부분에 대한 코드만 써놓은 글입니다.

  • 설정.
  • 유니티 2D 이동 코드.
  • 실행결과.

유니티 설정.

이 부분의 제목을 어떻게 해야 할지 모르겠네요.

Player오브젝트

아래 사진처럼 대충 스프라이트를 만들어줍니다.

(2D object->sprite에서 생성.)

이렇게 해서 만들어진 Player오브젝트에 스크립트 하나를 추가해줍니다.

저는 code폴더를 하나 생성하고 해당 폴더에 Playercontroller라는 스크립트를 생성해서 Player오브젝트에 스크립트를 넣어줬습니다.(코드는 아래에서.)

(이번 글에서는 사용하지 않을 Rigidbody 2D와 Circle Collider 2D도 생성해줬습니다. ㅋㅋ)

저처럼 Rigidbody 2D도 추가하면 중력 때문에 떨어지니 Gravitiy Scale을 0으로 해주세요.

유니티 2D 이동 코드.

Player오브젝트에 들어가는 스크립트 코드입니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class playercotroller : MonoBehaviour
{
    [SerializeField] private float Speed;
    // Update is called once per frame
    void Update()
    {
        float X = Input.GetAxisRaw("Horizontal");
        float Y = Input.GetAxisRaw("Vertical");
        transform.Translate(new Vector2(X,Y)*Time.deltaTime*Speed);
    }
}

[SerializeField] = Private변수를 유니티의 인스펙터에서 접근 가능하게 해주는 기능.

GetAxisRaw = -1,0,1

GetAxis = -1~1

Time.deltaTime = Update()는 컴퓨터의 성능에 따라 호출 횟수가 다름. 프레임에 상관없이 모두 동일한 환경에서 동일한 속도를 구현하기 위해 사용하는 기능.

transform.Translate() = 상대좌표 기준으로 이동.

실행.

위 코드를 실행한 결과.

Designed by JB FACTORY