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
}