Unity c# 用 nameof 取代方法字串


建立時間: 2023年3月24日 06:01
更新時間: 2023年4月29日 07:53

說明

nameof 是一個編譯時期的運算符號,可以取得一個指定識別符號的名稱作為一個字串,其中識別符號,可以是變數、方法、屬性、類別、命名空間等。

Unity 腳本有時候會把方法名稱當作另一個方法的引數,這時就很適合用 nameof

使用方式

Ball.cs

using UnityEngine;

/// <summary>
/// 球
/// </summary>
public class Ball : MonoBehaviour
{
    /// <summary>
    /// 球速
    /// </summary>
    public float speed = 500f;

    public Rigidbody2D Rigidbody
    {
        get;
        private set;
    }

    private void Awake()
    {
        Rigidbody = GetComponent<Rigidbody2D>();
    }

    // Start is called before the first frame update
    void Start()
    {
        Invoke(nameof(SetRandomTrajectory), 1f);
    }

    private void SetRandomTrajectory()
    {
        Vector2 force = Vector2.zero;
        force.x = Random.Range(-1f, 1f);
        force.y = -1f;

        Rigidbody.AddForce(force.normalized * speed);
    }
}

如上 SetRandomTrajectory() 打算在1秒後才執行,所以用了 Invoke() 來實現,Invoke() 第一個參數是方法名稱,這時就能用 nameof 取得方法名稱,這樣做使編輯器能更容易識別方法有參考到哪些地方。

參考

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

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

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