Example #1
0
        SEC.DispatchSmartEvent CreateDispatchSmartEvent(SED.EventVar s)
        {
            var go = new GameObject("DISPATCHER");
            var w  = go.AddComponent <SEC.DispatchSmartEvent>();

            var sow = new SerializedObject(w);

            sow.FindProperty("_event").FindPropertyRelative("_smartEvent").objectReferenceValue = s;
            sow.ApplyModifiedProperties();
            sow.Update();

            return(w);
        }
Example #2
0
        SEC.ListenSmartEvent CreateListenSmartEvent(SED.EventVar s)
        {
            var go = new GameObject("LISTENER");
            var l  = go.AddComponent <SEC.ListenSmartEvent>();

            var sol = new SerializedObject(l);
            var arr = sol.FindProperty("_data");

            arr.arraySize++;
            var el = arr.GetArrayElementAtIndex(0);

            el.FindPropertyRelative("_smartEvent").objectReferenceValue = s;
            sol.ApplyModifiedProperties();
            sol.Update();
            var evt = ((UnityEvent)el.FindPropertyRelative("_onEvent").GetObject());

            evt.AddListener(OnEvent);
            var fr = (SmartEvent.EventListener)el.GetObject();

            fr.GetType().GetField("_useMulti", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(fr, false);
            fr.unityEventOnReceive = true;

            return(l);
        }