Моя модель игрока обрезает объекты в Ursina при использовании модуля FirstPersonController.Python

Программы на Python
Anonymous
Моя модель игрока обрезает объекты в Ursina при использовании модуля FirstPersonController.

Сообщение Anonymous »

Я экспериментирую с ursina и пытаюсь создать объект игрока с работающим коллайдером и моделью. Столкнулся с проблемой, как бы я ни старался, коллайдер просто не работает. Я пытаюсь использовать модуль для создания системы камеры типа третьего лица.
Я пытался использовать сетчатый коллайдер и бокс-коллайдер с модулем, но безрезультатно. Я также попытался создать отдельный класс сущности и добавить его в FirstPersonController, но, увы, это тоже не сработало. Я опубликую изображения и код, которые у меня есть на данный момент.
На этом изображении изображена моя модель, прорезающая половину стены:
Изображение

На этом изображении моя модель прорезает половину пола:
Изображение

На этом изображении показано обнаружение столкновений, включенное с помощью моя модель прорезает стены:
Изображение

Код: Выделить всё

from ursina import *
from ursina.prefabs.first_person_controller import *
from perlin_noise import PerlinNoise
noise = PerlinNoise(octaves=3, seed=random.randint(1,10000))
app = Ursina()

ground = Entity(
model="cube",
scale=(200,20,200),
texture="grass",
position=(0,-30,0),
collider="box"
)
walls = Entity(
model="walls_starting_area.obj",
position=(0,-30,0),
collider="mesh",
texture="brick"
)

Sky()
class character(Entity):
def __init__(self, position=(0,-20,0), model="cube", speed=20, collider="box",scale_x=1,scale_y=1):
super().__init__(
model=model,
position=position,
speed=speed,
collider=collider,
scale_x=scale_x,
scale_y = scale_y
)
self.model = model
self.position = position
self.speed = speed
self.collider = collider
self.scale_x = scale_x
self.scale_y = scale_y

wall = character(position=(0,-20,3), scale_x=30, scale_y=20,collider="box")
player = FirstPersonController(model="cube", collider="box",speed= 20)
camera.z = -5

def update():
# Check for collisions between the player and other entities
for obj in scene.entities:
if obj.collider and player.intersects(obj).hit:
print(f"Collision with {obj}")
app.run()
Я попробовал изменить начало координат моей модели на y = 0,5, что как бы исправляет столкновение с полом, но это работает только на ровных полах и не исправляет стены.

Подробнее здесь: https://stackoverflow.com/questions/783 ... personcont

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