1回だけ実行させるボタンが必要だったので拡張メソッドを作成してみました
public static class ButtonExtension { public static void OneShot(this Button self, System.Action action) { self.onClick.AddListener(() => { action?.Invoke(); self.onClick.RemoveAllListeners(); }); } }
サンプル
public class Sample : MonoBehaviour { [SerializeField] private Button _button; private void Awake() { // 1回だけクリックが実行される _button.OnShot(() => Debug.Log("Click")); } }