46 lines
1.4 KiB
C#
46 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Speedy_IKTargeting : MonoBehaviour
|
|
{
|
|
protected Animator animator;
|
|
|
|
public bool ikActive = false;
|
|
public Transform rightHandObj = null;
|
|
public Transform lookObj = null;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
animator = GetComponent<Animator>();
|
|
}
|
|
|
|
private void OnAnimatorIK(int layerIndex)
|
|
{
|
|
if(ikActive)
|
|
{
|
|
// Set the look target position, if one has been assigned
|
|
if (lookObj != null)
|
|
{
|
|
animator.SetLookAtWeight(1);
|
|
animator.SetLookAtPosition(lookObj.position);
|
|
}
|
|
|
|
// Set the right hand target position and rotation, if one has been assigned
|
|
if (rightHandObj != null)
|
|
{
|
|
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
|
|
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);
|
|
animator.SetIKPosition(AvatarIKGoal.RightHand, rightHandObj.position);
|
|
animator.SetIKRotation(AvatarIKGoal.RightHand, rightHandObj.rotation);
|
|
}
|
|
} else
|
|
{
|
|
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 0);
|
|
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 0);
|
|
animator.SetLookAtWeight(0);
|
|
}
|
|
}
|
|
}
|