Menu
CoddyTech

ベクトルの加算

CoddyのUnityジャーニー「Unityスクリプティングの基礎」セクションの一部。レッスン 17/67。

Vector3は変数に格納でき、2つのVector3は+で足し合わせられます。xはxに、yはyに、zはzに加算されます。これが、2つの力が合わさって1つの動きになる仕組みです。このビーチボールは毎秒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へ向かう移動量です。2つのベクトルの間に*を使うことはできません。roll * windはコンパイルできません。

challenge icon

チャレンジ

簡単

川のcurrentは常にボートを流します。上矢印キーを押している間は、川の流れに加えてボートのmotorも推進力になります。どちらもインスペクターで設定する毎秒あたりの移動量で、川の流れは(1, 0, 0)、モーターは(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スクリプティングの基礎のすべてのレッスン