Как установить собственный коллайдер для объекта Entity в Ursina ⇐ Python
Как установить собственный коллайдер для объекта Entity в Ursina
Сейчас я работаю над картой леса на тестовом уровне в Урсине и использую рандомайзер для создания елей. Но я хочу немного уменьшить размер их поля столкновений, чтобы иметь возможность проходить сквозь них, поскольку они могут появляться близко друг к другу. Однако метод, который я пытаюсь использовать, похоже, не работает.
Вот мой класс дерева
дерево классов (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))
Сейчас я работаю над картой леса на тестовом уровне в Урсине и использую рандомайзер для создания елей. Но я хочу немного уменьшить размер их поля столкновений, чтобы иметь возможность проходить сквозь них, поскольку они могут появляться близко друг к другу. Однако метод, который я пытаюсь использовать, похоже, не работает.
Вот мой класс дерева
дерево классов (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))
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как сделать сетчатый коллайдер для файла FBX в Engine Ursina, Python? [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сделать сетчатый коллайдер для файла FBX в Engine Ursina, Python? [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-