public static void Play(GameObject gm, MeshAnimation[] tma, string res, string name, WrapMode mode, float fSpeed, bool bRandomFrameIndex) { ModelAnimation.m_AnimationInfo = ModelAnimation.GetAnimationInfo(res + "/" + name); if (ModelAnimation.m_AnimationInfo == null) { return; } ModelAnimation.m_WarpMode = mode; ModelAnimation.m_fSpeed = fSpeed; ModelAnimation.m_iEventPostIndex = -1; int num = 0; if (bRandomFrameIndex) { num = UnityEngine.Random.Range(0, ModelAnimation.m_AnimationInfo.iFrameCount); } ModelAnimation.m_fCurPlayTime = (float)num * (1f / (float)ModelAnimation.m_AnimationInfo.iFrameRate); for (int i = 0; i < ModelAnimation.m_AnimationInfo.listEvent.Count; i++) { AnimationEvent animationEvent = ModelAnimation.m_AnimationInfo.listEvent[i]; if (animationEvent.time >= ModelAnimation.m_fCurPlayTime) { ModelAnimation.m_listEvent.Add(animationEvent); } } for (int j = 0; j < tma.Length; j++) { tma[j].PlayAnimation(res, name, ModelAnimation.m_AnimationInfo.iFrameRate, mode, fSpeed, ModelAnimation.playingstartframe); } ModelAnimation.playingstartframe = 0; }
public static void Stop(GameObject gm, MeshAnimation[] tma, string res, string name) { if (gm.animation.enabled) { return; } ModelAnimation.m_AnimationInfo = ModelAnimation.GetAnimationInfo(res + "/" + name); if (ModelAnimation.m_AnimationInfo == null) { return; } ModelAnimation.m_WarpMode = WrapMode.Once; ModelAnimation.m_fSpeed = 1.2f; ModelAnimation.m_iEventPostIndex = -1; int num = 1000; ModelAnimation.m_fCurPlayTime = (float)num * (1f / (float)ModelAnimation.m_AnimationInfo.iFrameRate); for (int i = 0; i < tma.Length; i++) { tma[i].PlayAnimation(res, name, ModelAnimation.m_AnimationInfo.iFrameRate, ModelAnimation.m_WarpMode, ModelAnimation.m_fSpeed, num); } }