public NullSkeletonAnimation AppendAnimation() { NullSkeletonAnimation ani = new NullSkeletonAnimation(); mAnimationArray.Add(ani); return(ani); }
protected bool RotateAnimation(NullSkeletonAnimation animation, float angle) { if (animation == null || animation.GetFrameCount() == 0 || angle == 0.0f) { return(false); } //rotate root node only NullSkeletonNodeAnimation node = animation[0]; List <Vector3> poses = node.GetPosition(); List <Quaternion> quates = node.GetQuat(); for (int i = 0; i < animation.GetFrameCount(); i++) { Vector3 newPos = Vector3.zero; Quaternion newQuat = Quaternion.identity; Vector3RotateCalculation(angle, poses[i], ref newPos, false); QuaternionRotateCalculation(angle, quates[i], ref newQuat); node.SetPosition(i, newPos); node.SetQuaternion(i, newQuat); } return(true); }