IKTargetBoneCtrl.cs 754 B

12345678910111213141516171819202122232425262728
  1. using System;
  2. using UnityEngine;
  3. public class IKTargetBoneCtrl
  4. {
  5. public IKTargetBoneCtrl(Transform target_bone, Transform virtual_parent)
  6. {
  7. this.bone = target_bone;
  8. this.realParent = this.bone.parent;
  9. this.virtualParent = virtual_parent;
  10. }
  11. public void Update()
  12. {
  13. Vector3 localScale = this.virtualParent.localScale;
  14. this.virtualParent.localScale = Vector3.one;
  15. Vector3 position = this.virtualParent.InverseTransformPoint(this.realParent.position);
  16. this.virtualParent.localScale = localScale;
  17. this.bone.position = this.virtualParent.TransformPoint(position);
  18. this.bone.rotation = this.realParent.rotation;
  19. }
  20. public readonly Transform bone;
  21. public readonly Transform realParent;
  22. public readonly Transform virtualParent;
  23. }