0

我正在使用资产商店中相当复杂和全面的第三人称控制器包。 https://www.assetstore.unity3d.com/en/#!/content/27438

我需要在控制器中更改这一行(或者可能添加新代码),以使角色在按下前进键时朝着角色所面对的方向移动。

这是默认线,但角色相对于相机移动而不是独立移动:

m_LookRotation = m_CameraTransform.rotation;

接下来是建议替换该行以实现目标的行:

m_LookRotation = Quaternion.Euler(PlayerInput.GetAxisRaw(Constants.YawInputName), 0, 0);

然而,随着那条线取代了原来的线,前进键会导致角色向一个特定方向移动,而不管他面向哪个方向。示例:如果我向右转,然后按前进键,角色会在前进前转回原来的方向。

[这里是完整的控制器脚本: https ://docs.google.com/document/d/1B4sstqtCqRMCLuHuxEuA9I7tO_3W4aHqEZwr73uFDjY/edit?pref=2&pli=1 ]

4

1 回答 1

0

您可以将字符的旋转和前向向量相乘,即:

Vector3 targetForward = characterRotation * Vector3.forward;
于 2016-03-04T07:42:08.190 回答