210716
Unity2D_Basic #1
2D project를 생성시 생기는 화면
sprite생성 -> 이미지 -> C# script를 컴포넌트로 추가
transform.position += Vector3.right * 1 * Time.deltaTime;
-Time.deltaTime을 곱하는이유
Time.deltaTime -> 이전 Update()의 종료부터 다음 Update() 시작까지의 시간
ex) pc마다의 사양 차이
pc_a = 60초에 Update() 60회 호출
Time.deltaTime = 1
pc_b = 60초에 Update() 120회 호출
Time.deltaTime = 0.5
이동거리 = 방향 * 속도 * Time.deltaTime
Update() 1회에 캐릭터가 5m움직인다 가정 ->
5m X 60 X 1 = 300m
5m X 60 X 0.5 = 300m
pc의 사양에 따라서 움직임이 달라지는것을 방지
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movement2D : MonoBehaviour
{
private void Update()
{
// 새로운 위치 = 현재 위치 + (방향 * 속도)
//transform.position = transform.position + new Vector3(1, 0, 0) * 1;
transform.position += Vector3.right * 1 * Time.deltaTime;
}
}
-원하는 방향키를 눌렀을 때 이동하는 기능
using System.Collections;
using System.Collections.Generic;
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.GetAxisRaw()를 이용해서 좌, 우는 Horizontal 상, 하는 Vertical 키워드를 이용한다.