Menu
CoddyTech

벡터 더하기

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 17번째.

Vector3는 변수에 저장할 수 있으며, 두 벡터는 +로 더할 수 있습니다. x는 x에, y는 y에, z는 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는 컴파일되지 않습니다.

challenge icon

챌린지

쉬움

강의 current는 항상 보트를 따라 흐르게 합니다. 위쪽 화살표를 누르고 있는 동안에는 motor도 더해져, 강물의 흐름에 더해 보트를 밀어 줍니다. 둘 다 초당 단위로 이동하며 Inspector에서 설정합니다. current는 (1, 0, 0)이고 motor는 (0, 0, 3)입니다.

Play를 누르고 위쪽 화살표로 강을 건넌 다음, Check를 누르세요.

직접 해보기

using UnityEngine;

public class Boat : MonoBehaviour
{
    public Vector3 current = new Vector3(0, 0, 0);
    public Vector3 motor = new Vector3(0, 0, 0);

    void Update()
    {
        // 물살은 항상 배를 움직입니다.
        // 위쪽 화살표 키를 누르고 있는 동안에는 모터도 배를 밀어줍니다.
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 스크립팅 기초의 모든 레슨