Unity Plus

48,394円 /年



Unity Pro


217,800円 /年

Unity認定資格

Unity学習
基本英語です

50%OFFセール中だ!!

セール期間残り

{{timeleftshow}}


今日だけのセール:70%OFF
{{todaysaleleft}}

UnityEventのリスナーは消せない?

UnityEngine.Events.UnityEventについてです。

このクラスを使うとInspectorからButtonのOnClickListenerみたいにメソッドを登録できます。

こんな感じの奴。

で、

一回だけ起動させたいなと思って、

_events?.Invoke()

みたいにしてEventを発動させた後に、

_events.RemoveAllListener()

を使ってみました。名前からして消えるんだろうなと思って。

しかし、呼び出しても消えず。

公式を見てみるとインスペクタから設定したイベントは永続的なものとして登録されて、消せないみたいです。

スクリプトから設定したもののみ消えるそうです。


そういうわけなんで、一回だけ呼び出すには

こんな感じでそのまま書くしかないのかも。

もしくは、

enterOnceEvent.SetPersistentListenerState(0,UnityEventCallState.Off);

こんな感じにオフにする機能もあるようです。