반응형
지정된 방향으로 한 번 이동(Awake)
public class Movement2D : MonoBehaviour
{
private void Awake()
{
// 새로운 위치 = 현재 위치 + (방향 * 속도)
transform.position = transform.position + new Vector3(1, 0, 0) * 1;
// transform.position += Vector2.right * 1; 과 동일한 코드
}
}
- transform : 내가 소속되어 있는 게임오브젝트의 Transform 컴포넌트 의미
- Vector3 : 게임의 2D/3D 공간에서 이동, 회전, 크기를 표현하기 위해 (x, y) 또는 (x, y, z) 좌표 체계를 나타내는 단위로 Unity 내에 존재하는 구조체
지정된 방향으로 계속 이동(Update)
using UnityEngine;
public class Movement2D : MonoBehaviour
{
private void Update()
{
transform.position += Vector3.right * 1 * Time.deltaTime;
}
}
TIme.deltatime이란?
: 한 컴퓨터 내에서 또는 다른 컴퓨터 사이에 FPS가 다를 때 캐릭터의 이동속도가 달라지는 것을 방지하기 위해 이전 Update() 종료부터 다음 Update() 시작까지의 시간을 곱한다.
이동할 방향을 입력받아 이동
using UnityEngine;
public class Movement2D : MonoBehaviour
{
private float moveSpeed = 5.0f;
private Vector3 moveDirection = Vector3.zero;
private void Update()
{
//Negative left, a : -1
//Positive right, d : 1
// Non : 0
float x = Input.GetAxisRaw("Horizontal");
//Negative down, s : -1
//Positive up, w : 1
// Non : 0
float y = Input.GetAxisRaw("Vertical");
// 이동방향 설정
moveDirection = new Vector3(x, y, 0);
transform.position += moveDirection * moveSpeed * Time.deltaTime;
}
}
- Input : PC(키보드, 마우스), 모바일(터치, 가속도센서, 자이로센서) 등의 입력 메소드, 마우스 좌표와 같은 각종 프로퍼티 정보를 제공
- GetAxisRaw : Unity에 미리 설정된 단축키를 이용하는 함수(Edit - Project Setting - Input Manager 에서 단축키 확인 가능)
GetAxisRaw()는 키를 누르면 바로 1 or -1이 되지만 GetAxis()는 키를 누르고 있으면 0에서 1 or -1로 서서히 증가한다(부정도 마찬가지)
반응형
'게임 > Unity' 카테고리의 다른 글
Unity 2D ) 게임오브젝트 생성 함수 Instantiate() (0) | 2021.03.02 |
---|---|
Unity 2D) 게임오브젝트 물리와 충돌 (0) | 2021.02.28 |
Unity 이벤트 함수 (0) | 2021.02.27 |
Unity 콘솔뷰에 데이터 출력 (0) | 2021.01.15 |
Unity 이미지 출력 방법 (0) | 2021.01.15 |