diff --git a/ursina/collider.py b/ursina/collider.py index 05831610..dba48015 100644 --- a/ursina/collider.py +++ b/ursina/collider.py @@ -120,8 +120,12 @@ def __init__(self, entity, mesh=None, center=(0,0,0)): vertex_reader.setRow(vi) verts.append(vertex_reader.getData3()) + # ursina uses a left handed y-up coordinate system + # but panda3d uses a right handed z-up coordinate system + verts = list(map(lambda v : Vec3(v[0],v[2],v[1]), verts)) + for i in range(0, len(verts)-3, 3): - p = CollisionPolygon(Vec3(verts[i+2]), Vec3(verts[i+1]), Vec3(verts[i])) + p = CollisionPolygon(verts[i+2], verts[i+1], verts[i]) self.collision_polygons.append(p) super().__init__(entity, self.collision_polygons)