Ursina EditorCamera() 切换

Ursina EditorCamera() toggle

这是我用来在 Ursina 中使用 EditorCamera 和将其关闭之间切换的代码:

from ursina import *
app = Ursina()
def input(key):
    if key == 'd':
        editor_camera.enabled = False
    if key == 'e':
        editor_camera.enabled = True

editor_camera = EditorCamera(enabled = False)

cube = Entity(model = "cube", texture = "brick") # just to see if it works


app.run()

当像这样单独应用时,它工作正常,但是当我将相同的逻辑应用到一个更大的项目时,当启用相机(按 e)时,一切都消失了,当我禁用相机(按 d)时,一切重现。有什么我想念的吗?感谢任何帮助。

来自editor_camera.py:

def on_disable(self):
    camera.editor_position = camera.position
    camera.parent = camera.org_parent
    camera.position = camera.org_position
    camera.rotation = camera.org_rotation

所以当你禁用它时,它会将相机放回原来的位置,这在制作编辑器时很有用。

如果你只是想从 运行 停止编辑器相机的代码,我建议设置 editor_camera.ignore = True 并且更新和输入代码将停止 运行,但 on_disable 赢了被叫到。 或者你可以做 editor_camera.on_disable = None 或者手动重置位置和旋转。

在@pokepetter 的回答后,我想出了一个新的解决方案,只需将您的代码替换为这个:

from ursina import *
app = Ursina()

def input(key):
    if key == 'd':
        editor_camera.ignore = True

    if key == 'e':
        editor_camera.ignore = False


editor_camera = EditorCamera()
cube = Entity(model = "cube", texture = "brick")
app.run()