反向运动函数SetIKPosition()未运行指定的行为

时间:2019-04-27 16:55:16

标签: unity3d inverse-kinematics

当前,我正在创建将实例化到Player Prefab的武器实例化的系统后,为我的逆运动学创建一个不同的系统。

我最近遇到了困扰,我对如何解决感到困惑,代码将发布在下面,但是基本上我试图将我的右手(IK目标)设置为游戏对象位置(矢量3) ,GetHandle()函数只是从另一个脚本中获取该数据。运行游戏时,控制台中不会出现任何错误,并且下面会贴出一张外观类似的图片。

![1]:https://cdn.discordapp.com/attachments/279786369902051328/571739583818104842/Capture.PNG

场景中的白色正方形是从GetHandle()位置(矢量3)绘制的Gizmos,这是应该放置右手的位置。

在更改手柄位置时,右手会遵循手柄位置,但会遵循剑游戏对象的基座,而手腕本身会附着在游戏对象的基座上,而不是手本身(只是偏置剑)游戏对象?)。

我的猜测显然是IKPosition中的变换位置

weapon.currentRightWeapon.GetComponent<WeaponSystem>().GetHandle()

最有可能是问题所在,但不确定是什么原因导致了此结果, 以及如何让手捕捉HandlePosition(IK目标)

欢迎任何建议或澄清,如果您有任何疑问,请提问!,谢谢您抽出宝贵的时间阅读!

animator.SetIKPosition(AvatarIKGoal.RightHand, weapon.currentRightWeapon.GetComponent<WeaponSystem>().GetHandle());

animator.SetIKPositionWeight(AvatarIKGoal.RightHand, .3f);
public Vector3 GetHandle() {
        return handlePosition.transform.position;
    }

0 个答案:

没有答案