AnimationBaker.ReadWriteHierarchy C# (CSharp) Метод

ReadWriteHierarchy() приватный Метод

private ReadWriteHierarchy ( Transform h, bool record ) : void
h Transform
record bool
Результат void
    void ReadWriteHierarchy(Transform h,bool record)
    {
        if(!h){
            Debug.Log ("Empty skeleton detected!");
            return;
        }
        if(!record){
            if(curBoneId ==0 && rootPositionConstraint.HasConstraint()){
                tempV3 = h.localPosition;
                if(!rootPositionConstraint.x)
                    tempV3.x = animClip.bonesStates[curBoneId].samples[curSample].pos.Read().x;
                if(!rootPositionConstraint.y)
                    tempV3.y = animClip.bonesStates[curBoneId].samples[curSample].pos.Read().y;
                if(!rootPositionConstraint.z)
                    tempV3.z = animClip.bonesStates[curBoneId].samples[curSample].pos.Read().z;
                h.localPosition = tempV3;
            }else{
                //Debug.Log ("cur sample:"+curSample+"curBone:"+curBoneId+"source skeleton bone name:"+h.name);
                //Debug.Log ( "bone position"+animClip.bonesStates[curBoneId].samples[curSample].pos.Read ().ToString());
                h.localPosition = animClip.bonesStates[curBoneId].samples[curSample].pos.Read ();
            }
            if(curBoneId == 0 && rootRotationConstraint.HasConstraint()){
                tempV3 = h.localEulerAngles;
                if(!rootRotationConstraint.x)
                    tempV3.x = animClip.bonesStates[curBoneId].samples[curSample].rot.Read().eulerAngles.x;
                if(!rootRotationConstraint.y)
                    tempV3.y = animClip.bonesStates[curBoneId].samples[curSample].rot.Read().eulerAngles.y;
                if(!rootRotationConstraint.z)
                    tempV3.z = animClip.bonesStates[curBoneId].samples[curSample].rot.Read().eulerAngles.z;
                h.localEulerAngles = tempV3;
            }else h.localRotation = animClip.bonesStates[curBoneId].samples[curSample].rot.Read();

            h.localScale = animClip.bonesStates[curBoneId].samples[curSample].scale.Read ();
        }else{
            tempRot = h.localRotation;
            animClip.bonesStates[curBoneId].AddSample (new BoneStateSample(h.localPosition,tempRot,h.localScale));
        }
            //Debug.Log ("bone '"+h.name+"' local angles recorded :"+bonesAngles[curBoneId,curSample]);
        curBoneId++;
        foreach(Transform bone in h){
            ReadWriteHierarchy(bone,record);
        }
    }