벡터 더하기
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 24번째.
Vector3는 변수에 저장할 수 있으며, 두 개를 +로 더하면 x끼리, y끼리, z끼리 더해집니다. 이렇게 두 번 미는 힘이 하나의 움직임으로 합쳐집니다. 이 비치볼은 초당 2유닛 앞으로 굴러가고, 바람은 초당 1유닛 오른쪽으로 밀어냅니다:
Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);
void Update()
{
Vector3 move = roll + wind; // (1, 0, 2)
transform.position += move * Time.deltaTime;
}벡터에 숫자를 곱하면 각 성분에 그 숫자가 곱해집니다. wind * 3은 폭풍처럼 (3, 0, 0)이 되며, move * Time.deltaTime은 초당 움직임을 이번 프레임 동안의 움직임으로 바꿉니다. 뺄셈도 성분별로 작동하며, a - b는 점 b에서 점 a로 이동하는 단계입니다. 두 벡터 사이에는 *를 사용할 수 없습니다. roll * wind는 컴파일되지 않습니다.
챌린지
쉬움강물은 보트를 떠내려가게 하고, 위쪽 화살표는 모터의 힘을 더합니다.
Update()에서Vector3 move = current;로 시작하세요.Input.GetKey(KeyCode.UpArrow)가 true인 동안+=를 사용해motor를move에 더하세요.move * Time.deltaTime을transform.position에 더하세요.
‘플레이’를 누르세요. 보트는 오른쪽으로 떠내려가며, 위쪽 화살표를 누르고 있는 동안 강을 건넙니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class Boat : MonoBehaviour
{
public Vector3 current = new Vector3(0, 0, 0);
public Vector3 motor = new Vector3(0, 0, 0);
void Update()
{
// 물살은 항상 배를 움직입니다.
// 위쪽 화살표 키를 누르고 있는 동안에는 모터도 배를 밀어줍니다.
}
}
Unity 스크립팅 기초의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드