protected override void OnDisable() { if (linkedObject != null) { linkedObject.InteractableObjectUsed -= InteractableObjectUsed; linkedObject.InteractableObjectUnused -= InteractableObjectUnused; } SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushEndedEvent.UnregisterListener(OnSGPushEnded); base.InstantClearState(); base.OnDisable(); }
//----------------------------------------------------------------- // NOT USED //----------------------------------------------------------------- protected virtual void InteractableObjectUnused(object sender, InteractableObjectEventArgs e) { if (isUsed && sGPushStartedEvent.HasFired) { OnSGPushCanceled(); } isUsed = false; SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushChangedEvent.UnregisterListener(OnSGPushChanged); SGPushEndedEvent.UnregisterListener(OnSGPushEnded); //log.InfoMS("<Color=blue>\n---Unused---</Color>"); frameOffset = currentFrame; if (rewindOnRelease) { RewindAnimation(); } SetTimelineSpeed(1); }
/// <summary> /// Additional methods can be called here during button state changes. e.g. play a sound. /// The listeners for the Skeleton Gestures are managed here. /// </summary> /// <param name="state">the standard button selection states.</param> /// <param name="instant">will use fade tiem or transition instantly.</param> protected override void DoStateTransition(SelectionState state, bool instant) { //log.InfoMS($"<Color=cyan>state transition </Color> <b>{state}</b> <Color=cyan>of </Color><Color=green>{gameObject.name}</Color>"); switch (state) { case SelectionState.Normal: SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushEndedEvent.UnregisterListener(OnSGPushEnded); break; case SelectionState.Highlighted: SGPushStartedEvent.RegisterListener(OnSGPushStarted); break; case SelectionState.Pressed: SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushEndedEvent.RegisterListener(OnSGPushEnded); break; case SelectionState.Selected: break; case SelectionState.Disabled: SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushEndedEvent.UnregisterListener(OnSGPushEnded); break; default: SGPushStartedEvent.UnregisterListener(OnSGPushStarted); SGPushEndedEvent.UnregisterListener(OnSGPushEnded); break; } base.DoStateTransition(state, instant); }