鼠标光标在键盘输入过程中变为锁定状态

问题描述:

我在尝试使用Unity的第一枪。这是我第一次进军游戏开发和3D环境。我正在按照以下位于这里的生存射击游戏教程:https://unity3d.com/learn/tutorials/projects/survival-shooter/player-character?playlist=17144鼠标光标在键盘输入过程中变为锁定状态

我去试试鼠标移动,它应该改变玩家对象的方向,但发现玩家不会改变方向。

我甚至试着直接复制教程作者的代码,完整地使用它并覆盖我的原始脚本。他们的代码可以在链接中找到。

Debug.Log("Raycast not hitting");添加到Turning函数的else块中会导致在每个FixedUpdate期间触发调试消息,而不管鼠标是否已经放置在地板上。

由于您直接复制了所有脚本,因此我假设它们对您的脚本没有任何问题。这意味着这个问题很可能位于你场景中的某个地方。布尔控制玩家Physics.Raycast(camRay, out floorHit, camRayLength, floorMask)。您使用的else语句确保此函数返回false。我认为这可能最可能的原因是您的场景中没有将其图层设置为floor的对象。如果RayCast在camRayLength单位范围内未找到具有floor层的对象,则上述功能将自动返回false。因此,查找或创建一个覆盖整个楼层并将其图层设置为floor的对象。我还建议查看Physics.Raycast的脚本API文档,以便更好地理解代码中发生了什么。下面是Unity文档的链接:https://docs.unity3d.com/ScriptReference/Physics.Raycast.html