Esempio n. 1
0
        private void LookAtTarget(Vector3 targetPosition)
        {
            Vector3    targetDirection = targetPosition - eyeTarget.bone.transform.position;
            Quaternion headRotation    = eyeTarget.headTarget.head.bone.transform.rotation * eyeTarget.headTarget.head.bone.toTargetRotation;

            Vector3 headForward = headRotation * Vector3.forward;
            Vector3 headUp      = headRotation * Vector3.up;

            Vector3 targetEyeAngles = Quaternion.FromToRotation(headForward, targetDirection).eulerAngles;
            Vector3 eyeAngles       = UnityAngles.Clamp(targetEyeAngles, eyeTarget.bone.minAngles, eyeTarget.bone.maxAngles);

            targetDirection = Quaternion.Euler(eyeAngles) * headForward;

            eyeTarget.target.transform.rotation = Quaternion.LookRotation(targetDirection, headUp);
        }
Esempio n. 2
0
 public static float LimitKneeAngle(FootTarget.TargetedLowerLegBone lowerLeg, float angle)
 {
     return(UnityAngles.Clamp(angle, 0, lowerLeg.bone.maxAngle));
 }
Esempio n. 3
0
 protected Vector3 LimitAngles(HumanoidTarget.TargetedBone bone, Vector3 angles)
 {
     angles = UnityAngles.Clamp(angles, bone.bone.minAngles, bone.bone.maxAngles);
     return(angles);
 }