我遇到了问题。为了重现问题,我创建了一个极简的例子。
https://code.7imezones.com/vhalragnarok/UnityCameraMouseIssues
( Unity 6.3 LTS)。
我的角色无法正确地向向鼠标拧转。
我在使用新的输入系统,并将 PlayerInput 设计为一个C#类,通过该类捕捉输入事件。
我正在使用 Character Controller。
Ray ray = Camera.main.ScreenPointToRay(_aimDirection);
if (!Physics.Raycast(ray, out var hitInfo, Mathf.Infinity, _aimLayerMask)) return;
Vector3 lookDirection = (hitInfo.point - transform.position).normalized;
lookDirection.y = 0f;
transform.forward = lookDirection;
上述代码位于Update loop中。然而,hitInfo.point的值却不对。我是在Update中使用鼠标位置。
一个问题是,我在使用Cinemachine。我的跟随摄像机(World Space)和旋转组合器(Rotation Composer)。
_aimLayerMask是以序列化方式输出的,_aimDirection来自OnAim(InputCallback值)事件处理器的。ReadValue
评论 (0)