Как установить собственный коллайдер для объекта Entity в UrsinaPython

Программы на Python
Anonymous
Как установить собственный коллайдер для объекта Entity в Ursina

Сообщение Anonymous »


Сейчас я работаю над картой леса на тестовом уровне в Урсине и использую рандомайзер для создания елей. Но я хочу немного уменьшить размер их поля столкновений, чтобы иметь возможность проходить сквозь них, поскольку они могут появляться близко друг к другу. Однако метод, который я пытаюсь использовать, похоже, не работает.

Вот мой класс дерева

дерево классов (Entity): def __init__(я, позиция): супер().__init__( model="Активы/SimpleTree.fbx", текстура="Активы/Treesnow.png", масштаб=0,007, позиция = позиция, double_side=Истина, коллайдер = 'коробка' ) И вот я их создаю случайным образом

#-----СЛУЧАЙНОЕ ПОРОЖДЕНИЕ ДЕРЕВА---- для i в диапазоне (-100, 100, 10): для j в диапазоне (-100, 100, 10): шанс = случайный() если я == player.position[0] и j == player.position[2]: шанс = 0 если шанс > 0,5: spawnTree = Tree(position=(i+randint(2, 6), 0, j+randint(2, 6))) #small offset #spawnTree.collider = 'коробка' #spawnTree.collider.size=Vec3(spawnTree.position[0]-4, 6, spawnTree.position[2]-4) #print(spawnTree.collider.size) В комментариях в последних трех строках вы можете увидеть мои попытки напрямую изменить размер по умолчанию при создании объектов, поскольку на самом деле вы можете обратиться к этому с помощью print()

Кроме того, я попробовал использовать метод документации, но это ничего не меняет, если я использую коллайдер «коробка» по умолчанию.

Если я отключу коллайдер «коробка» в классе и использую строку ниже при появлении, игрок вообще не столкнется с деревьями.
spawnTree.collider = BoxCollider(spawnTree, center=spawnTree.position, size=Vec3(spawnTree.position[0]-4, 6, spawnTree.position[2]-4))

Вернуться в «Python»