0
爲什麼Inspector中的ThirdPersonController Animator組件中不存在IK控制器?
我試圖按照統一的文件說明如何使用反向運動學在本頁面:
但我沒有IK動畫控制器的時候,我選擇動畫師控制器。
我試着現在添加腳本。但是右手被摺疊到另一側。這不像它持有閃光燈:腳本附加到ThirdPersonController。然後我將拖放到Inspector中的腳本右側的HandObj EthanRightHand和lookObj中,拖動了手電筒。
但手似乎是錯誤的方式。
這是我現在使用的IKControl腳本:
using UnityEngine;
using System;
using System.Collections;
[RequireComponent(typeof(Animator))]
public class IKControl : MonoBehaviour
{
protected Animator animator;
public bool ikActive = false;
public Transform rightHandObj = null;
public Transform lookObj = null;
void Start()
{
animator = GetComponent<Animator>();
}
//a callback for calculating IK
void OnAnimatorIK()
{
if (animator)
{
//if the IK is active, set the position and rotation directly to the goal.
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);
}
}
//if the IK is not active, set the position and rotation of the hand and head back to the original position
else
{
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 0);
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 0);
animator.SetLookAtWeight(0);
}
}
}
}
您是否嘗試將腳本添加到'GameObject'? – Hristo
@Hristo是的,我現在嘗試。但它還不能正常工作,手被摺疊錯誤,看起來不像拿着手電筒。我更新了我的問題以及我正在使用的腳本。 –
當你玩的時候有什麼區別嗎?你是否也從手的「變換」中改變了任何東西? – Hristo