using System.Collections; using System.Collections.Generic; using UnityEngine; using NaughtyAttributes; /// /// /// public class IkController : MonoBehaviour { #region Inspector Fields [SerializeField, BoxGroup("References")] private HandController m_leftHandTarget, m_rightHandTarget; [SerializeField, BoxGroup("References")] private Animator m_animator; [SerializeField, BoxGroup("Settings"),Range(0,1)] public float IKWeight = 1; #endregion Inspector Fields #region Private Fields #endregion Private Fields #region Getters #endregion Getters #region MonoBehaviour Functions /// /// OnEnable is called when the object becomes enabled and active. /// private void OnEnable() { } /// /// OnDisable is called when the behaviour becomes disabled. /// private void OnDisable() { } /// /// Update is called once per frame /// private void Update() { } //a callback for calculating IK void OnAnimatorIK() { if (m_animator) { m_animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1); m_animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1); m_animator.SetIKPosition(AvatarIKGoal.LeftHand, m_leftHandTarget.GetIKPosition()); m_animator.SetIKRotation(AvatarIKGoal.LeftHand, m_leftHandTarget.GetIKRotation()); m_animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1); m_animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1); m_animator.SetIKPosition(AvatarIKGoal.RightHand, m_rightHandTarget.GetIKPosition()); m_animator.SetIKRotation(AvatarIKGoal.RightHand, m_rightHandTarget.GetIKRotation()); } } #endregion MonoBehaviour Functions #region Class Functionality #endregion Class Functionality #region Editor Functions /// /// Called when the Component is created or Reset from the Inspector /// private void Reset() { //useful for finding components on creation } #endregion Editor Functions }