public void WriteToFile(System.IO.BinaryWriter pWriter)
        {
            pWriter.Write(layerIndex);
            pWriter.Write(machineIndex);
            pWriter.Write(index);
            pWriter.Write(name);
            pWriter.Write(speed);
            pWriter.Write(motionName);

            pWriter.Write(transtionList.Count);
            for (int i = 0; i < transtionList.Count; i++)
            {
                AssetTransitions.Transtions item = transtionList[i];
                item.WriteToFile(pWriter);
            }
        }
        public void ReadFromFile(System.IO.BinaryReader pReader)
        {
            layerIndex   = pReader.ReadInt32();
            machineIndex = pReader.ReadInt32();
            index        = pReader.ReadInt32();
            name         = pReader.ReadString();
            speed        = pReader.ReadSingle();
            motionName   = pReader.ReadString();

            hashName = name.GetHashCode();

            int tlen = pReader.ReadInt32();

            for (int i = 0; i < tlen; i++)
            {
                var item = new AssetTransitions.Transtions();
                item.ReadFromFile(pReader);
                transtionList.Add(item);
            }
        }
        public void SetData(UnityEditor.Animations.AnimatorState pState)
        {
            name     = pState.name;
            hashName = pState.nameHash;
            speed    = pState.speed;

            AnimationClip clip = pState.motion as AnimationClip;

            motionName = clip != null ? clip.name: "";

            transtionList.Clear();
            AnimatorStateTransition[] transs = pState.transitions;
            for (int k = 0; k < transs.Length; k++)
            {
                AnimatorStateTransition     transdata  = transs[k];
                AssetTransitions.Transtions ttranstion = new AssetTransitions.Transtions()
                {
                    ownerMachineIndex = machineIndex
                };
                ttranstion.CopyData(transdata);
                transtionList.Add(ttranstion);
            }
        }
        public AnimatorTransition(PlayableAnimatorParameter parms, AssetTransitions.Transtions pData, int pIndex)
        {
            AssetTransitions.Transtions transtion = pData;
            Index           = pIndex;
            duration        = transtion.duration;
            exitTime        = transtion.exitTime;
            destinationName = transtion.destinationName;
            destinationType = transtion.destinationType;


            if (transtion.conditions != null && transtion.conditions.Length > 0)
            {
                conditionLength = transtion.conditions.Length;
                conditions      = new AnimatorCondition[conditionLength];
                for (int i = 0; i < conditions.Length; i++)
                {
                    conditions[i] = new AnimatorCondition(parms, transtion.conditions[i], i);
                }
            }

            destinationHashName = destinationName.GetHashCode();
            ownerMachineIndex   = transtion.ownerMachineIndex;
        }