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

Unity中Resources.Load<Sprite>返回null问题求助

问题解决:Resources.Load无法加载Sprite的原因及修复

核心问题是Resources.Load的路径格式错误,具体修正和排查点如下:

1. 修正路径格式

Resources.Load的路径是从Assets/Resources文件夹内部开始计算的,不能以斜杠/开头,也不需要添加文件后缀(如.png)。你的代码里路径开头多了个/,导致找不到资源。

修正后的代码:

foreach(Card card in cards){
     var i = new GameObject(card.ToString()); 
     // card.ToString()格式固定为“数字 of 花色”,例如"2 of Clubs"

     // 去掉路径开头的/,直接从Resources下的子目录开始写
     var cardImage = Resources.Load<Sprite>("Materials/Sprites/" + card.ToString());

     i.AddComponent<Image>();
     var imageComponent = i.GetComponent<Image>();
     
     // 增加错误日志方便排查
     if(cardImage != null)
     {
         imageComponent.sprite = cardImage;
     }
     else
     {
         Debug.LogError("无法找到Sprite资源:" + card.ToString());
     }
}

2. 额外排查点

  • 路径大小写匹配:Unity的资源路径区分大小写,确认代码里的路径Materials/Sprites和实际文件夹名称完全一致,图片文件名和card.ToString()的输出(比如"2 of Clubs")大小写、空格完全匹配。
  • 资源导入设置:确保所有图片的Texture Type设置为Sprite(2D and UI),Sprite Mode为Single,右键图片选择Reimport重新导入资源。
  • 资源位置确认:所有图片必须放在Assets/Resources目录或其子目录下,你的Materials/Sprites子目录位置是正确的,这点没问题。

内容的提问来源于stack exchange,提问作者DarthSwashbuckler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:52:19