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
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!