using CG.UTility; using System; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; /******************************************************************************* *Create By CG *Function *******************************************************************************/ namespace ZXK.GYJQR { public class PlayStepAnmBase : Step_0 { public PlayStepAnmBase(AZBS itemAttr) : base(itemAttr) { } /// /// 执行路径位移的逻辑 /// public virtual void OnExcutePathMove() { } /// /// 动画控制方法 /// /// 动画控制器物体名字 /// 当前需要播放的动画片段名字 /// 当前动画播放序列 /// 播放完成响应事件 protected void PlayAnmCtrl(string AnmCtrlName, string anmClipName, int index,Action? startCall ,Action clipFinishCall) { PathManager pm = outLineParts[0].GetComponent() ? outLineParts[0].GetComponent() : outLineParts[0].AddComponent(); pm.onMouseDown = new UnityEngine.Events.UnityEvent(); pm.onMouseDown.AddListener(() => { if (StepManager.Instance.CurStep == this) { if (!CG.UTility.PopUpMng._TriAble) return; GameObject AnmCtrlGeo = ModelManager.Instance.SeekAZBSPart(AnmCtrlName); // AnmCtrlGeo.GetComponent().SetInteger("StepIndex", index); // StartCoroutine(OnDelay(4.5f, clipFinishCall)); AnimatorEventCtr.Instance.Play(anmClipName, AnmCtrlGeo.GetComponent(), index, startCall, //结束事件 () => { clipFinishCall(); } ); } }); } } }