我想更改点击图片按钮的图片。 所以,我设置了一个按钮并尝试在assets / Resources / PATH加载PNG文件。 但它总是回归,它让我迷失了-_-。 一些问题喜欢我的情况,每个人都回答'尝试移动文件加载资产/ Resoucres PATH,我的情况不能这样修复。
这是我的代码。单击图像按钮时,此功能将加载NumCard_1.png文件。 NumCard_1.png存在于assets / Resources文件夹中。
void OnclkMe()
{
Sprite newSprite = Resources.Load<Sprite>("/NumCard_1") as Sprite;
// I already try ("NumCard_1") instead above.
if(newSprite==null)
{
Debug.Log("NULL"); // Always prints "NULL" -_-.
}
else
{
Debug.Log(newSprite.name);
}
}
答案 0 :(得分:3)
在Unity中使用Resources.Load时,它使用一个相对文件夹来&#34;资源&#34; 您打算在运行时使用的每个资源都必须位于/ Resources下,如果它在那里 - 创建它。 创建此基本文件夹后(在“资源”下),您可以根据自己的喜好创建子文件夹。
其次,作为Sprite的Resources.Load(&#34; / NumCard_1&#34;)被滥用了。 通用方法Resources.Load返回T,因此您可以删除&#34;作为Sprite&#34; (它将采取相同的行动)。
Unity使用&#34;资源&#34;作为基本文件夹,你应该删除&#34; /&#34;之前&#34; NumCard&#34;。 如果您使用子文件夹,您可能希望将路径指定为&#34; Cards / NumCard_1&#34;。
根据您的代码,在创建文件夹Assets / Resources并将img放入其中后,请尝试以下操作:
Sprite newSprite = Resources.Load<Sprite>("NumCard_1")
答案 1 :(得分:0)
在资源文件夹中添加您的精灵。 将纹理类型更改为Sprite,然后应用。
Sprite newSprite = Resources.Load(“NumCard_1”,typeof(Sprite))为Sprite;
答案 2 :(得分:0)
也许你没有将该文件的import配置设置为sprite?通常png将作为纹理导入,而不是精灵
首先你应该尝试像这样检查
var obj = Resources.Load("NumCard_1");
Debug.Log(typeof(obj));
如果obj不为null,它会告诉你它是什么类型。如果它不是精灵,你需要转到统一编辑器,选择文件,并将png的导入类型更改为精灵
ps使用通用意味着你可以写就像这样
var obj = Resources.Load<Sprite>("NumCard_1");
obj将是精灵。如果它不是精灵,那么它将为null
答案 3 :(得分:-1)
文件夹名称必须在资产
中命名为“资源”