Java 设置空间对象的本地转换将不起作用

Java 设置空间对象的本地转换将不起作用,java,spatial,jmonkeyengine,Java,Spatial,Jmonkeyengine,我正在与jMonkeySDK合作开发一款3D java游戏。 当我使用光线拍摄模型/空间时,它会返回该空间。这样我就可以访问 .getName() or .setUserData(). 空间物理学在它上面。所以当游戏开始时,它会从天上掉下来。 因此,首先我想实现一个拾取方法,将该空间的局部平移设置为某个点 .getParent().setLocalTranslation(0, 50, 0); (父项是“Blender Exports/woodlog/woodlog-scene_node(no

我正在与jMonkeySDK合作开发一款3D java游戏。 当我使用光线拍摄模型/空间时,它会返回该空间。这样我就可以访问

.getName() or .setUserData().
空间物理学在它上面。所以当游戏开始时,它会从天上掉下来。 因此,首先我想实现一个拾取方法,将该空间的局部平移设置为某个点

.getParent().setLocalTranslation(0, 50, 0);

(父项是“Blender Exports/woodlog/woodlog-scene_node(node)”一旦有东西被放入物理系统,你需要让物理系统处理移动它。你不能直接在JME3中移动对象而不破坏物理(如你所见)


您需要通过对物理空间中的对象施加力来移动它们,或将它们从物理空间中移除。例如,您拾取的对象应该只位于手的“附件”节点上,完全没有物理,因为它将随携带它的人一起移动。

问题是您移动了对象的可见部分对象(其空间)远离对象的物理部分(其物理控件或碰撞形状,即添加到物理空间的对象)

要将其直接传送到固定位置,您需要使用
.setPhysicsLocation(0,50f,0)
或其快捷方式
.warp(0,50,0)
来处理字符。 不幸的是,我不知道如何准确地从你的空间到那里——我自己在动态对象添加部分处理问题

物理学确实有通过施力系统进行实际拾取的优势

.getParent().getParent().setLocalTranslation(0, 50, 0);