试图改变Sprite图像,但没有运气......我做错了什么?

时间:2015-07-04 13:51:00

标签: unity3d unityscript unity3d-2dtools

这让我发疯了。我正在使用Unity3d ver5并且拥有一个MainCamera位于(0,0,-10)的场景和一个名为BackGround的精灵(0,0,0)。旋转和比例都是(0,0,0)& (1,1,1)。我有一个非常简单的脚本,名为BackGround.js附加到精灵,它是一个简单而直接的前提:

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:找到需要对象实例的空值。

我在这里做错了什么?感谢。

2 个答案:

答案 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;

现在像魅力一样工作!