今回はUnityというよりC#のプログラム的なメモです。
修正漏れを防止する
例えば、下記の様にInvokeRepeatingでは呼び出すメソッド(SquareIns)を文字列として指定します。
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);
公式リファレンスは下記です。
switch文の中でも使えそうで便利ですね。
nameofを使わない方が良い場合も
nameofはコルーチンの呼び出しでも利用できるけど、パラメータがあるコルーチンの場合はnameofを利用しない方が自然ですかね。
StartCoroutine(SquareIns(num));