今回はUnityというよりC#のプログラム的なメモです。
修正漏れ防止
例えば、下記の様にInvokeやInvokeRepeatingでは呼び出すメソッドを文字列として指定します。
using UnityEngine; public class CreateSquare : MonoBehaviour { [SerializeField] private GameObject _SquarePrefab; [SerializeField] private float _interval; void Start() { InvokeRepeating("SquareIns", 0f, _interval); } private void SquareIns() { Instantiate(_SquarePrefab); } }
ここでメソッド名を変更するとコンパイルエラーとならず、実行した時にエラーとなります。
しかし、下記の様にnameofで囲うとコンパイルエラーになり、修正漏れに気付きます。
InvokeRepeating(nameof(SquareIns), 0f, _interval);
コルーチンの呼び出しでも利用できるけど、パラメータもあるので、コルーチンの場合は下の方が自然ですかね。
StartCoroutine(nameof(SquareIns)); StartCoroutine(SquareIns());
あとは、switch文の中でも使えそうですね。