физика в Ursina

пытаюсь создать физику для объектов Ursina, чтобы куб при падении катился и переворачивался:

import ursina
import random

app = ursina.Ursina()

    # Создание куба с физическим телом
cube = ursina.Entity(model='cube', collider='box', texture='white_cube', position=(0,2,0),scale=(1,1,1))
#cube.body = ursina.RigidBody(cube, mass=1, shape=ursina.BoxCollider(entity=cube.model))
cube.body = ursina.RigidBody(cube, mass=1, shape=ursina.BoxCollider(entity=cube.model))

    # Создание пола с физическим телом
floor = ursina.Entity(model='plane', texture='white', collider='box', position=(0,-1,0), scale=(20,1,20))
floor.body = ursina.RigidBody(floor, mass=1e6, shape=ursina.PlaneCollider(entity=floor))

def update():

        # Обновление вращения куба
    cube.rotation_x += 10 * time.dt
    cube.rotation_y += 10 * time.dt
    cube.rotation_z += 10 * time.dt

        # Проверка столкновения с полом
    raycast_hit_info = ursina.raycast(cube.position, direction=Vec3(0,-1,0), ignore=[cube])

    if raycast_hit_info.hit:

            # Определение угла падения объекта
        impact_angle = -90 + math.degrees(math.atan2(raycast_hit_info.normal[2], raycast_hit_info.normal[0]))

            # Применение вращения к кубу
        cube.rotation_z = impact_angle

app.run()

Выводится сообщение об ошибке:

Traceback (most recent call last):
  File "<pyshell#5>", line 11, in <module>
    cube.body = ursina.RigidBody(cube, mass=1, shape=ursina.BoxCollider(entity=cube.model))
  File "C:\Python310\lib\site-packages\ursina\rigidbody.py", line 143, in __init__
    self.node_path.node().addShape(_convert_shape(shape, entity, dynamic=not self.rigid_body_node.isStatic()))
  File "C:\Python310\lib\site-packages\ursina\rigidbody.py", line 183, in _convert_shape
    raise Exception('To use a mesh shape you must specify at least one entity or mesh!')
Exception: To use a mesh shape you must specify at least one entity or mesh!

Ответы (0 шт):