第三人称控制器运动

时间:2016-03-04 07:25:48

标签: c# unity3d unity5 unity3d-5

我正在使用资产商店中相当复杂和全面的第三人称控制包。 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]

1 个答案:

答案 0 :(得分:0)

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

Vector3 targetForward = characterRotation * Vector3.forward;