using System; using UnityEngine; public class IKTargetBoneCtrl { public IKTargetBoneCtrl(Transform target_bone, Transform virtual_parent) { this.bone = target_bone; this.realParent = this.bone.parent; this.virtualParent = virtual_parent; } public void Update() { Vector3 localScale = this.virtualParent.localScale; this.virtualParent.localScale = Vector3.one; Vector3 position = this.virtualParent.InverseTransformPoint(this.realParent.position); this.virtualParent.localScale = localScale; this.bone.position = this.virtualParent.TransformPoint(position); this.bone.rotation = this.realParent.rotation; } public readonly Transform bone; public readonly Transform realParent; public readonly Transform virtualParent; }