C# 第三人称控制器运动
我使用的是资产商店中相当复杂和全面的第三方控制器软件包。 我需要更改控制器中的这一行(或者可能添加新代码),以使角色在按下向前移动键时朝着角色所面对的方向移动 以下是默认行,但角色相对于摄影机移动,而不是独立移动:C# 第三人称控制器运动,c#,unity3d,unity5,unity3d-5,C#,Unity3d,Unity5,Unity3d 5,我使用的是资产商店中相当复杂和全面的第三方控制器软件包。 我需要更改控制器中的这一行(或者可能添加新代码),以使角色在按下向前移动键时朝着角色所面对的方向移动 以下是默认行,但角色相对于摄影机移动,而不是独立移动: m_LookRotation = m_CameraTransform.rotation; 接下来是为实现目标而建议替换该行的行: m_LookRotation = Quaternion.Euler(PlayerInput.GetAxisRaw(Constants.YawInput
m_LookRotation = m_CameraTransform.rotation;
接下来是为实现目标而建议替换该行的行:
m_LookRotation = Quaternion.Euler(PlayerInput.GetAxisRaw(Constants.YawInputName), 0, 0);
但是,当该行替换原始行时,“向前移动”关键点会使角色朝一个特定方向移动,而不管他朝哪个方向移动。示例:如果我向右转弯,然后按“向前走”键,则角色将在向前走之前返回到原始方向
[以下是完整的控制器脚本:
]您可以将字符的旋转和前向向量相乘,即:
Vector3 targetForward = characterRotation * Vector3.forward;
谢谢你的回复。在我提供的完整代码中,我应该在不破坏某些内容的情况下将该行放置在何处,因为包相当复杂,并且包含许多部分/脚本等。@Xeritan In Update()或FixedUpdate()在将移动向量应用于播放器之前,将targetForward向量应用于角色。