You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:45:07