public void Awake() { myAnimator = moveController.GetComponent <Animator>(); m_FXHelper = moveController.GetComponent <FXHelper>(); SetPlayerMoves(); requiredEvents = new MoveEventUpdateList(); regularEvents = new MoveEventUpdateList(); isCrossFading = false; }
private void UpdateEventArray(MoveEventUpdateList moveEventList, float startingFrame, float nextFrame) { float fixedNextFrame = nextFrame < startingFrame ? currentMove.NumFrames : nextFrame; while (moveEventList.currentEventIndex < moveEventList.moveArray.Length) { MoveEvent currentEvent = moveEventList.moveArray[moveEventList.currentEventIndex]; float moveEventFrame = moveController.NormalizedTimeToFrame_Wrapped(currentEvent.myAnimEvent.time); if (startingFrame <= moveEventFrame && moveEventFrame <= fixedNextFrame) { TryTriggerEvent(currentEvent); if (moveChanged == true) { break; } } else if (moveEventFrame > fixedNextFrame) { break; } moveEventList.currentEventIndex++; } // if we wrap frames for a LOOPING animation, then play from 0 to the proper ending frame if (moveEventList.currentEventIndex == moveEventList.moveArray.Length && nextFrame < startingFrame) { #if UNITY_ANDROID if (moveController.GetCurrentStateInfo().loop) #else if (currentMove._animationClip != null && currentMove._animationClip.isLooping) #endif { moveEventList.currentEventIndex = 0; if (moveEventList.moveArray.Length > 1 && nextFrame > 0.0f) { UpdateEventArray(moveEventList, 0.0f, nextFrame); } } } moveEventList.lastUpdatedFrame = nextFrame; }