public AnimatorStateCallBack(AnimatorStateCallBack animatorStateCallBack) { Name = animatorStateCallBack.Path.Split('.')[animatorStateCallBack.Path.Split('.').Length - 1]; Path = animatorStateCallBack.Path; HashCode = animatorStateCallBack.HashCode; OnPlay = animatorStateCallBack.OnPlay; OnPlayEnd = animatorStateCallBack.OnPlayEnd; }
private void ReadAllStates() { path = ""; ator = GetComponentInChildren <Animator>(); print(ator.runtimeAnimatorController); RuntimeAnimatorController myController = ator.runtimeAnimatorController; AnimatorOverrideController myOverrideController = myController as AnimatorOverrideController; if (myOverrideController != null) { myController = myOverrideController.runtimeAnimatorController; } UnityEditor.Animations.AnimatorController animatorController = (UnityEditor.Animations.AnimatorController)myController; UnityEditor.Animations.AnimatorControllerLayer[] allLayer = animatorController.layers; tempAnimatorStateCallBack.Clear(); for (int i = 0; i < allLayer.Length; i++) { Root = allLayer[i].name; GetAllEvent(allLayer[i].stateMachine); } //比對 for (int l = 0; l < AnimatorStateCallBack.Count; l++) { for (int m = 0; m < tempAnimatorStateCallBack.Count; m++) { if (tempAnimatorStateCallBack[m].HashCode == AnimatorStateCallBack[l].HashCode) { tempAnimatorStateCallBack[m] = new AnimatorStateCallBack(AnimatorStateCallBack[l]); break; } } } AnimatorStateCallBack = new List <AnimatorStateCallBack>(); AnimatorStateCallBack.AddRange(tempAnimatorStateCallBack); print(tempAnimatorStateCallBack.Count); print(AnimatorStateCallBack.Count); }