示例#1
0
 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;
 }
示例#2
0
    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);
    }