在Ursina Engine(Python)中设置窗口背景失败,求解决方法
游戏窗口背景图片设置问题解决方法
问题分析
你尝试的两种方法都存在场景适配问题:
- Sky类:这个类是为3D场景设计的天空盒,会将纹理映射到包裹整个3D空间的球体内,完全不适合作为2D窗口背景,效果不符合预期是正常的。
- Entity类:你的写法缺少关键参数配置,导致背景无法显示。
解决方案
正确使用Entity类设置2D窗口背景
以下是可直接运行的示例代码,核心是配置纹理路径、适配窗口的尺寸、锚点和层级:
from ursina import * app = Ursina() # 窗口背景设置 mainbg = Entity( parent=camera.ui, # 挂载到UI相机下,确保2D显示 texture='Assets/ruined_city_main_bg.png', # 务必加上正确文件后缀(如.png/.jpg) scale_x=camera.aspect_ratio, # 自动适配窗口宽高比,避免拉伸 scale_y=1, z=10, # 设为较大值,让背景处于所有UI元素底层 anchor=(0, 0), # 将锚点设为屏幕左上角 position=(0, 0) # 对齐左上角 ) # 测试用UI元素,验证背景在底层 test_text = Text(text='测试文本', position=(0, 0)) app.run()
背景不显示的排查点
- 纹理路径错误:检查文件是否存在于指定路径,确认后缀(如
.png)是否遗漏。 - 尺寸适配问题:不设置
scale或size时,Entity默认大小为1x1,可能小到无法察觉。 - 层级遮挡:确保背景的
z值大于其他UI元素(Ursina中UI层级z值越大越靠后)。 - 锚点与位置:默认锚点是屏幕中心,若位置配置不当,背景可能偏移出显示区域。
内容的提问来源于stack exchange,提问作者Мирончук Максим
相关产品推荐
相关产品推荐

