这个问题让我很头疼。我正在尝试实现基于鼠标输入的Cannon.Body的旋转。通过使用(Cannon) Three FPS示例进行演示,您可以了解问题所在。
当您运行代码并通过单击"click to play“区域启用pointerlockcontrol,并按W 1秒以使球体进入摄影机的视图时,您将看到球体通过应用速度根据WASD键移动。如果移动鼠标,则会将四元数应用于身体,并计算适当的速度。现在旋转180度,X轴上的旋转现在以某种方式被取消。向上移动鼠标时,球体将向下旋转。
如何解决这样的问题呢?也许我在其他地方做错了什么,这可能会扰乱四元数?
也许我应该提一下,在playerc
我已经开始开发一个应用程序,它的基本思想是显示一个用户可以旋转的球体。导入球体的.dae文件没有任何问题。当我添加任何类型的照明时(泛光灯、区域灯、方向灯等)在场景图中,在运行我的应用程序后,灯光只照亮球体的一个特定部分,并与球体一起旋转。我希望能够旋转我的球体,让光线停留在特定的位置,这样我就可以对太阳和地球产生类似的效果。当球体旋转时,应该只照亮朝向太阳/灯光的区域。 ? let scene = SCNScene(named: "art.scnassets/untitled")!
let cameraNode = SCNNode()
camera
我目前正在制作一场卡塔马里/比利·哈彻的比赛,球员必须在其中滚动球体。当游戏开始时,玩家有正常的平台控制,直到接近球体,如果玩家按下“附加”按钮,玩家就会成为球体的子级。我遇到的问题是,每当这种情况发生时,球员就会随着球体旋转。我试着冻结球员的刚体,这样它就可以停止旋转,但这只是阻止了球体的旋转。在保持球体旋转的同时,有没有办法阻止球员的旋转?
图片:,这是我的流程脚本:
Rigidbody hitRB;
public Vector3 offset = new Vector3(0, 0, 1);
public LayerMask pickupMask;
bool isAttached;
p