Пример #1
0
 public void Process()
 {
     if (null != this.additive_parent)
     {
         BoneController.LiteTransform deltaTransform = this.additive_parent.GetDeltaTransform(this.add_local);
         if (this.add_move)
         {
             base.transform.localPosition += deltaTransform.position * this.additive_rate;
         }
         if (this.add_rotate)
         {
             Quaternion quaternion;
             if (0f <= this.additive_rate)
             {
                 quaternion = Quaternion.Slerp(Quaternion.identity, deltaTransform.rotation, this.additive_rate);
             }
             else
             {
                 Quaternion quaternion2 = Quaternion.Inverse(deltaTransform.rotation);
                 quaternion = Quaternion.Slerp(Quaternion.identity, quaternion2, -this.additive_rate);
             }
             base.transform.localRotation *= quaternion;
         }
     }
 }
Пример #2
0
 public BoneController.LiteTransform GetDeltaTransform(bool is_add_local)
 {
     BoneController.LiteTransform result;
     if (is_add_local)
     {
         result = new BoneController.LiteTransform(base.transform.position - this.prev_global_.position, Quaternion.Inverse(this.prev_global_.rotation) * base.transform.rotation);
     }
     else
     {
         result = new BoneController.LiteTransform(base.transform.localPosition - this.prev_local_.position, Quaternion.Inverse(this.prev_local_.rotation) * base.transform.localRotation);
     }
     return(result);
 }