function Start () {
var spr = GetComponent.<SpriteRenderer>();
spr.sprite = Resources.Load("bg") as Sprite;
Debug.Log(spr.sprite.ToString)
}
bg是位于Assets文件夹根目录中的PNG图像。
我想要实现的是能够使用此脚本选择某个图像作为BackGround精灵,即我使用Sprite:None启动BackGround精灵,然后使用脚本加载图像。
这不起作用,当我运行它时,我最终得到一个蓝色的空屏幕。 Debug.Log的更多信息显示如下: NullReferenceException:找到需要对象实例的空值。
我在这里做错了什么?感谢。
答案 0 :(得分:0)
要通过Resources.Load
加载您的资源,您的资源需要放在名为Resources
的文件夹下,文件夹的父级必须{{1}。 1}}但它需要命名为Assets
。
您的项目下可能有多个Resources
文件夹,Unity会查看所有文件夹以尝试找到您的资源。这很重要,因为在调用Resources
时,您可能拥有相同的资源路径,但是有多个与之匹配的资源,因此您需要小心。
据说你应该创建一个名为Resources.Load
的文件夹并在那里添加你的png。
答案 1 :(得分:0)
我找到了解决方法。
在: spr.sprite = Resources.Load(&#34; bg&#34;)作为Sprite;
应更改为: spr.sprite = Resources.Load(&#34; bg&#34;,typeof(Sprite))为Sprite;
现在像魅力一样工作!