public static void CallSaveToBase() { if (GlobalScheduler.InstanceExists() && Application.isPlaying) { GlobalScheduler.CallFunction(GlobalScheduler.Instance.gameObject, new Delegates.FunctionPointer(SaveToBase), 0.2f, false); } else { SaveToBase(); } }
protected virtual void OnPanelStateChanged(PanelStateEnum p_panelState) { if (p_panelState == PanelStateEnum.Opening || p_panelState == PanelStateEnum.Opened || p_panelState == PanelStateEnum.Closing) { CheckFocus(p_panelState); } else { List <object> v_parameters = new List <object>(); v_parameters.Add(p_panelState); GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer <PanelStateEnum>(CheckFocus), v_parameters, 0.1f, true); } }
protected virtual void InitialRecalcCorrector() { //Prevent Bugs when other objects mass change after this late update cycle //When not paused if (GlobalScheduler.InstanceExists()) { GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcSelfMass), 0.7f, false); GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcOthersMass), 0.7f, false); GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(RecalcRopesMass), 0.7f, false); } //and after Pause Invoke("RecalcSelfMass", 0.05f); Invoke("RecalcOthersMass", 0.05f); }
public void ForceSetPanelStateValue(PanelStateEnum p_value, bool p_updateEffect, bool p_underDisableOrEnable = false) { if (Scheduler == null || !EnableScheduler) { if (p_value == PanelStateEnum.Opening) { p_value = PanelStateEnum.Opened; } if (p_value == PanelStateEnum.Closing) { p_value = PanelStateEnum.Closed; } } bool p_changed = CheckIfStateWillChange(p_value); m_panelState = p_value; _panelState = m_panelState; if (p_changed) { if (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed) { if (!p_underDisableOrEnable) { SetActiveAndEnable(true, true); } if (Application.isPlaying) { gameObject.SendMessage("OnPanelStateChanged", m_panelState, SendMessageOptions.DontRequireReceiver); } } } if (Application.isPlaying && (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed)) { gameObject.SendMessage("CallEventsInternal", m_panelState, SendMessageOptions.DontRequireReceiver); } else { CallEventsInternal(m_panelState); } if (p_updateEffect) { UpdateEffect(); } //Used to Prevent Bugs while activating if (p_underDisableOrEnable) { if (Application.isPlaying && (CloseSpecialAction != CloseSpecialActionEnum.Deactivate || m_panelState != PanelStateEnum.Closed)) { gameObject.SendMessage("CallControlSpecialAction", SendMessageOptions.DontRequireReceiver); gameObject.SendMessage("UpdateObjectsToShowOrHideByState", SendMessageOptions.DontRequireReceiver); } else { CallControlSpecialAction(); UpdateObjectsToShowOrHideByState(); } } else { CallControlSpecialAction(); UpdateObjectsToShowOrHideByState(); if (!gameObject.activeSelf) { if (Application.isPlaying) { GlobalScheduler.CallFunction(this.gameObject, new Delegates.FunctionPointer(CheckNeedActivate), 0.01f, true); } } } if (!Application.isPlaying) { ControlSpecialAction(); CheckNeedActivate(); } }