Ursina Engine调用load_texture加载纹理无渲染无报错如何解决
Ursina Engine纹理加载无报错但显示空白解决方案
- 检查资源路径与命名规则:Ursina的
load_texture()默认从当前脚本运行的工作目录查找资源,需确认sans.png和运行的Python脚本放在同一文件夹下,同时文件名不要包含中文、空格、特殊符号,大小写完全匹配(Linux/macOS系统会严格校验文件名大小写)。 - 确认IDE工作目录配置正确:如果你通过PyCharm、VSCode等IDE的运行按钮启动脚本,需确认IDE的当前工作目录设置为脚本所在的文件夹,部分IDE默认工作目录不是脚本所在路径,会导致资源查找失败。可在代码开头添加以下代码打印当前工作目录确认:
import os print("当前工作目录:", os.getcwd())
- 验证图片文件有效性:确认
sans.png不是损坏文件,也不是其他格式强制修改后缀得到的伪png文件,优先使用RGB/RGBA格式的标准png图片,避免使用压缩比过高或非标准编码的png资源。 - 避免color属性覆盖纹理:如果实体同时设置了
color和texture参数,非白色的color会覆盖纹理显示,给带纹理的Entity显式设置color=color.white可避免隐式覆盖问题。 - 校验纹理加载结果:添加打印代码判断纹理是否加载成功,若输出为
None说明资源未找到,可尝试填写绝对路径加载纹理。
修复后的参考代码
from ursina import * import os # 打印当前工作目录确认资源查找路径 print("当前工作目录:", os.getcwd()) def update(): if held_keys['a']: test_square.x -= 1 * time.dt if held_keys['d']: test_square.x += 1 * time.dt app = Ursina() test_square = Entity(model = 'quad', color = color.red, scale = (1,4), position = (3,1)) sans_texture = load_texture('sans.png') # 打印加载结果判断是否找到资源 print("纹理加载结果:", sans_texture) # 显式设置color为白色避免覆盖纹理 sand = Entity(model = 'quad', texture = sans_texture, color=color.white) app.run()
内容的提问来源于stack exchange,提问作者Anslip
相关产品推荐
相关产品推荐

