private void SetListenersState(UnityEventCallState state) { for (int i = 0; i < button.onClick.GetPersistentEventCount(); i++) { button.onClick.SetPersistentListenerState(i, state); } }
internal void AddPersistentListener(UnityAction call, UnityEventCallState callState) { int persistentEventCount = base.GetPersistentEventCount(); base.AddPersistentListener(); this.RegisterPersistentListener(persistentEventCount, call); base.SetPersistentListenerState(persistentEventCount, callState); }
internal void AddPersistentListener(UnityAction <T0> call, UnityEventCallState callState) { int persistentEventCount = base.GetPersistentEventCount(); base.AddPersistentListener(); this.RegisterPersistentListener(persistentEventCount, call); base.SetPersistentListenerState(persistentEventCount, callState); }
internal void AddPersistentListener(UnityAction <T0, T1, T2, T3> call, UnityEventCallState callState) { var count = GetPersistentEventCount(); AddPersistentListener(); RegisterPersistentListener(count, call); SetPersistentListenerState(count, callState); }
internal void AddPersistentListener(UnityAction call, UnityEventCallState callState) { int persistentEventCount = GetPersistentEventCount(); AddPersistentListener(); RegisterPersistentListener(persistentEventCount, call); SetPersistentListenerState(persistentEventCount, callState); }
public ButtonAttribute(string text = "", AColor color = AColor.None, UnityEventCallState whenCanPress = UnityEventCallState.EditorAndRuntime, UISize size = UISize.SoSmall) : base(color) { Height = (int)size; Text = text ?? throw new ArgumentNullException(nameof(text)); WhenCanPress = whenCanPress; }
public void SetPersistentListenerState(int index, UnityEventCallState state) { PersistentCall listener = m_PersistentCalls.GetListener(index); if (listener != null) { listener.callState = state; } DirtyPersistentCalls(); }
private static int SetPersistentListenerState(IntPtr L) { LuaScriptMgr.CheckArgsCount(L, 3); UnityEventBase unityEventBase = (UnityEventBase)LuaScriptMgr.GetNetObjectSelf(L, 1, "UnityEngine.Events.UnityEventBase"); int index = (int)LuaScriptMgr.GetNumber(L, 2); UnityEventCallState state = (UnityEventCallState)((int)LuaScriptMgr.GetNetObject(L, 3, typeof(UnityEventCallState))); unityEventBase.SetPersistentListenerState(index, state); return(0); }
internal static bool CheckUnityEventHasActivePersistentListener(SerializedProperty unityEvent) { if (unityEvent == null) { return(false); } SerializedProperty calls = unityEvent.FindPropertyRelative("m_PersistentCalls.m_Calls"); if (calls == null) { Debug.LogError(LOG_PREFIX + " Can't find Unity Event calls! Please report to " + REPORT_EMAIL); return(false); } if (!calls.isArray) { Debug.LogError(LOG_PREFIX + " Looks like Unity Event calls are not array anymore! Please report to " + REPORT_EMAIL); return(false); } bool result = false; int callsCount = calls.arraySize; for (int i = 0; i < callsCount; i++) { SerializedProperty call = calls.GetArrayElementAtIndex(i); SerializedProperty targetProperty = call.FindPropertyRelative("m_Target"); SerializedProperty methodNameProperty = call.FindPropertyRelative("m_MethodName"); SerializedProperty callStateProperty = call.FindPropertyRelative("m_CallState"); if (targetProperty != null && methodNameProperty != null && callStateProperty != null && targetProperty.propertyType == SerializedPropertyType.ObjectReference && methodNameProperty.propertyType == SerializedPropertyType.String && callStateProperty.propertyType == SerializedPropertyType.Enum) { Object target = targetProperty.objectReferenceValue; string methodName = methodNameProperty.stringValue; UnityEventCallState callState = (UnityEventCallState)callStateProperty.enumValueIndex; if (target != null && !string.IsNullOrEmpty(methodName) && callState != UnityEventCallState.Off) { result = true; break; } } else { Debug.LogError(LOG_PREFIX + " Can't parse Unity Event call! Please report to " + REPORT_EMAIL); } } return(result); }
/// <summary> /// Adds a persistent listener. Beware this is a hack using reflection. /// </summary> public void AddPersistentListener(UnityAction <T, U, V, X> action, UnityEventCallState state = UnityEventCallState.RuntimeOnly) { if (!UnityEventReflection.TryAccessPersistentCalls(this, ref _persistentCallsObject)) { return; } int index = GetPersistentEventCount(); UnityEventReflection.AddPersistentListner(_persistentCallsObject, index, action.Target as UnityEngine.Object, action.Method); SetPersistentListenerState(index, state); }
public void SetPersistentListenerState(int index, UnityEventCallState state) { PersistentCall listener = this.m_PersistentCalls.GetListener(index); bool flag = listener != null; if (flag) { listener.callState = state; } this.DirtyPersistentCalls(); }
public void ReadFrom(object obj) { if (obj == null) { m_Arguments = default(PersistentArgumentCache); m_CallState = default(UnityEventCallState); m_MethodName = null; m_Mode = default(PersistentListenerMode); m_Target = 0; return; } Initialize(obj.GetType()); m_Arguments = new PersistentArgumentCache(); m_Arguments.ReadFrom(m_argumentsFieldInfo.GetValue(obj)); m_CallState = (UnityEventCallState)m_callStatFieldInfo.GetValue(obj); m_MethodName = (string)m_methodNameFieldInfo.GetValue(obj); m_Mode = (PersistentListenerMode)m_modeFieldInfo.GetValue(obj); UnityObject target = (UnityObject)m_targetFieldInfo.GetValue(obj); m_Target = target.GetMappedInstanceID(); }
protected override void ReadFromImpl(object obj) { base.ReadFromImpl(obj); if (obj == null) { m_Arguments = default(PersistentArgumentCache); m_CallState = default(UnityEventCallState); m_MethodName = null; m_Mode = default(PersistentListenerMode); m_Target = 0; return; } Initialize(obj.GetType()); m_Arguments = new PersistentArgumentCache(); m_Arguments.ReadFrom(m_argumentsFieldInfo.GetValue(obj)); m_CallState = (UnityEventCallState)m_callStatFieldInfo.GetValue(obj); m_MethodName = (string)m_methodNameFieldInfo.GetValue(obj); m_Mode = (PersistentListenerMode)m_modeFieldInfo.GetValue(obj); UnityObject target = (UnityObject)m_targetFieldInfo.GetValue(obj); m_Target = ToID(target); }
internal void AddPersistentListener(UnityAction <T0, T1, T2, T3, T4, T5, T6, T7, T8> call, UnityEventCallState callState) { int persistentEventCount = GetPersistentEventCount(); AddPersistentListener(); RegisterPersistentListener(persistentEventCount, call); SetPersistentListenerState(persistentEventCount, callState); }
public ButtonAttribute(UnityEventCallState whenCanPut, string text = "") : this(text, AColor.None, whenCanPut) { }