我正在尝试使用Unity的第一次尝试。这是我第一次涉足游戏开发和3D环境。我正在关注位于此处的生存射手教程:https://unity3d.com/learn/tutorials/projects/survival-shooter/player-character?playlist=17144
我去尝试鼠标移动,这应该改变玩家对象的方向,但发现玩家没有改变方向。
我甚至尝试直接复制教程作者的代码,完整地使用它并覆盖我的原始脚本。他们的代码可以在链接中找到。
将Debug.Log("Raycast not hitting");
添加到Turning
函数中的else块会导致调试消息在每个FixedUpdate期间触发,无论鼠标是否位于地板上。
答案 0 :(得分:1)
由于您直接复制了所有脚本,我假设它们与您的脚本没有问题。这意味着此问题很可能位于场景中的某个位置。布尔控制播放器Physics.Raycast(camRay, out floorHit, camRayLength, floorMask)
。您使用的else语句向您保证此函数返回false。我认为最可能的原因是场景中没有对象,其图层设置为floor
。如果RayCast在floor
单位范围内找不到camRayLength
图层的对象,则上述函数将自动返回false。因此,找到或创建一个覆盖整个楼层并将其图层设置为floor
的对象。我还建议您查看Physics.Raycast的脚本API文档,以便更好地了解代码中的内容。这是Unity文档的链接:https://docs.unity3d.com/ScriptReference/Physics.Raycast.html