Unity 2D 獲取隨機的方向向量


建立時間: 2023年5月3日 04:07
更新時間: 2023年7月24日 02:58

說明

以前數學沒學好,現在已後悔,我寫了一個比較簡單的方法來獲取範圍內隨機向量,只需帶入起始角度和結束角度即可,如果有誤請私訊通知謝謝。

向量簡述

在 Unity 中,向量是用來表示空間中的方向和大小的數學概念。例如: (1, 0) 向量的大小和方向為原點 (0, 0) 往點 (1, 0) 的方向和長度,原點到任合一個點就是向量的大小和方向。

腳本

VectorUtilities.cs

using UnityEngine;

/// <summary>
/// 有關向量的實用方法
/// </summary>
public class VectorUtilities : MonoBehaviour
{
    /// <summary>
    /// 取得隨機方向,範圍可從右側0度,上方90度,到360度
    /// </summary>
    /// <param name="startDegree">起始角度</param>
    /// <param name="endDegree">結束角度</param>
    /// <returns></returns>
    public static Vector2 GetRandomDirection(float startDegree, float endDegree)
    {
        float angle = Random.Range(startDegree, endDegree);
        float radians = angle * Mathf.Deg2Rad;
        float x = Mathf.Cos(radians);
        float y = Mathf.Sin(radians);

        return new Vector2(x, y);
    }
}

你可以想像一圈360度,從右邊開始0度,逆時針旋轉一圈剛好360度,你只需輸入起始角度和結束角度,例如 VectorUtilities.GetRandomDirection(90, 270) 就是左半邊的圓都是可能出現的方向。

你可以用 Rigidbody.velocity = VectorUtilities.GetRandomDirection(0, 100) * speed 設定隨機方向的速度。

觀看次數: 990
directionrandomunityvectorvelocity
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!