试图改变 Sprite 图像但没有运气......我做错了什么?
Trying to change Sprite image but no luck... What am I doing wrong?
这让我发疯。我正在使用 Unity3d ver5 并有一个场景,在 (0,0,-10) 处有一个 MainCamera,在 (0,0,0) 处有一个名为 BackGround 的精灵。旋转和缩放分别为 (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 图像。
我想要实现的是能够使用此脚本选择某个图像用作背景精灵,即我使用精灵启动背景精灵:None,然后使用加载图像脚本。
这不起作用,当我 运行 它时,我最终得到一个蓝色的空白屏幕。 Debug.Log 的更多内容显示如下:
NullReferenceException: 在需要对象实例的地方发现了空值。
我在这里做错了什么?谢谢
要通过 Resources.Load
加载您的资源,您的资源需要放置在名为 Resources
的文件夹下,文件夹的父级不一定是 Assets
,但是它需要被命名为 Resources
.
您的项目下可能有多个 Resources
文件夹,Unity 会查看所有文件夹以尝试找到您的资源。这一点很重要,因为您在调用时可能有相同的资源路径 Resources.Load
但匹配它的多个资源,因此您需要小心。
话虽如此,您应该创建一个名为 Resources
的文件夹并在其中添加您的 png。
我已经找到了解决方案。
的:
spr.sprite = Resources.Load("bg") 作为雪碧;
应改为:
spr.sprite = Resources.Load("bg", typeof(Sprite)) as Sprite;
现在工作起来很有魅力!
这让我发疯。我正在使用 Unity3d ver5 并有一个场景,在 (0,0,-10) 处有一个 MainCamera,在 (0,0,0) 处有一个名为 BackGround 的精灵。旋转和缩放分别为 (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 图像。
我想要实现的是能够使用此脚本选择某个图像用作背景精灵,即我使用精灵启动背景精灵:None,然后使用加载图像脚本。
这不起作用,当我 运行 它时,我最终得到一个蓝色的空白屏幕。 Debug.Log 的更多内容显示如下: NullReferenceException: 在需要对象实例的地方发现了空值。
我在这里做错了什么?谢谢
要通过 Resources.Load
加载您的资源,您的资源需要放置在名为 Resources
的文件夹下,文件夹的父级不一定是 Assets
,但是它需要被命名为 Resources
.
您的项目下可能有多个 Resources
文件夹,Unity 会查看所有文件夹以尝试找到您的资源。这一点很重要,因为您在调用时可能有相同的资源路径 Resources.Load
但匹配它的多个资源,因此您需要小心。
话虽如此,您应该创建一个名为 Resources
的文件夹并在其中添加您的 png。
我已经找到了解决方案。
的: spr.sprite = Resources.Load("bg") 作为雪碧;
应改为: spr.sprite = Resources.Load("bg", typeof(Sprite)) as Sprite;
现在工作起来很有魅力!