Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 第三人称控制器运动_C#_Unity3d_Unity5_Unity3d 5 - Fatal编程技术网

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向量应用于角色。