コード例 #1
0
    public static void Update(Bone bone)
    {
        float length = GetBoneLength(bone.StartJointPositionGetter(), bone.EndJointPositionGetter()) / 2;

        // Scale bone along local y to the length between two points
        bone.GetBoneGameObject().transform.localScale = new Vector3(bone.GetBoneGameObject().transform.localScale.x, length, bone.GetBoneGameObject().transform.localScale.z);

        // Set position to midpoint
        bone.GetBoneGameObject().transform.position = GetBoneMidpoint(bone.StartJointPositionGetter(), bone.EndJointPositionGetter());

        // Set "up" vector to match line between two points
        bone.GetBoneGameObject().transform.up = bone.EndJointPositionGetter() - bone.StartJointPositionGetter();
    }