シリアライズ可能な辞書を持っていますが、通常モードでユニティイベントを追加しようとしましたが、入力されたプレイモードで辞書に失われたオブジェクトリファレンスの辞書
基本的に私がここで達成しようとしているのは、辞書とリストのスクリプトで新しいユニティイベントを追加することです。リストのユニティイベントは辞書からの参照です。一度プレイモードに入ると、統一イベントはもはや同じインスタンスではありません。 EDIT MODE
ON
私はここに質問をすることを決定した後、それは私に、シリアライズ辞書についての研究の3日以上を要しました。
OnBegin
は、SerializableDictionary<int, UnityEvent>
から継承するシリアライズ可能な辞書です。 OnBeginExpose
は通常のシリアライズ可能なリストです。
[SerializeField]
public MyDictionaryEntry OnBegin = new MyDictionaryEntry();
[SerializeField]
public List<UnityEvent> OnBeginExpose = new List<UnityEvent>();
これは、ユニティイベントを動的に追加する方法です。
[System.Serializable]
public class CaptionEvent : UnityEvent{};
動的カスタムエディタ
CaptionEvent newEvent = new CaptionEvent();
eventsAuto.OnBegin.Add(i, newEvent);
eventsAuto.OnBeginExpose.Add(newEvent);
で統一イベントを追加私は約Object.GetInstanceID()
解決策になるかもしれないことを聞いたが、私はそれがどのように動作するか見当がつかない。誰でも上記の問題の良いリファレンスを持っていますか?
私はあなたの質問を理解するかどうか分かりませんが、実行時にイベントにリスナーを追加すると、Unityは追加されてもそれを表示しません。たぶん問題があります。 – ATHellboy
実行時にリスナー/ユニテイを追加しません。申し訳ありませんが、私は間違った詳細を入れました。私はちょうど質問を編集します。 –
あなたはAwake関数によってオーバーライドされた参照にリスナーをreigsteringしているようです –