-3
from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

class Box(Button):
    def __init__(block='grass.obj',texture='grasstex.png',pose:tuple=(0,0,0)):
        super().__init__(model=block,texture=texture, collider='mesh',position=pose)

app=Ursina()
tp=50
for x in range(tp):
    for z in range(tp):
        Box(pose=(x,0,z))

player=FirstPersonController()
player.z=player.x=0
Sky()
app.run()

它给了我这个错误:

断言失败:在 panda/src/pgraph/nodePath.cxx 的第 407 行重新设置父级 断言失败:检测到在场景图中创建循环的尝试:ui_render/ui_camera/ui/box:c:\buildslave\ 第 2637 行的 PandaNode 框sdk-windows-amd64\build\panda\src\pgraph\pandaNode.cxx

我应该怎么办?

4

1 回答 1

1

您忘记了构造函数self中的参数Block

class Box(Button):
    def __init__(self, block='grass.obj', texture='grass', pose:tuple=(0,0,0)):
        super().__init__(
            parent=scene,
            model=block,
            texture=texture, 
            collider='mesh',
            position=pose)

Python 对象中的每个方法都将接收其实例作为第一个参数。我还必须明确分配parent=scene,否则这些框会附加到相机 UI,即使文档另有说明。

于 2022-02-01T09:52:22.050 回答