我正在使用资产商店中相当复杂和全面的第三人称控制包。 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]
答案 0 :(得分:0)
你可以将字符和前向矢量的旋转相乘,即:
Vector3 targetForward = characterRotation * Vector3.forward;