我的项目在Assets\Sprites中有多个我想使用C#脚本加载的sprite。我已经测试过了:
Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
但是myFruit仍然为空。
myFruit
aurhwmvo1#
Resources.Load将搜索Assets/Resources中的目录。如果你想把它放在Sprites目录下,那么把它放在Resources目录下(例如Assets/Resources/Sprites)。然后,您可以像这样加载它:
Resources.Load
Assets/Resources
Sprites
Resources
Assets/Resources/Sprites
Sprite myFruit = Resources.Load <Sprite> ("Sprites/Graphics_3");
还要确保您已在检查器中将图像类型设定为“精灵”。如果要加载多个sprite,请使用以下命令:
Sprite[] myFruit = Resources.LoadAll <Sprite> ("Sprites/Graphics_3");
有关详细信息,请参阅this。
aij0ehis2#
将awesome.png放置在Assets/Resources/中(可以有子文件夹),然后用途:
awesome.png
Assets/Resources/
GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("awesome"); // No file extension.
http://docs.unity3d.com/ScriptReference/Resources.html还有LoadAll,“加载Resources文件夹路径下的文件夹或文件中的所有资源。"
mwngjboj3#
我知道这是一个老职位,但如果它仍然不工作,只是加载资源,那么我们必须添加纹理以及。我这样做。
Texture2D texture = Resources.Load<Texture2D>("Sprites/imageName"); Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero); btnImage.image.sprite = sprite;
j8ag8udp4#
您需要输入资源的完整路径。在这种情况下,请尝试使用路径“Sprites/Graphics_3”。
amrnrhlw5#
Sprite sp = Resources.LoadAll<Sprite> ("Sprites/AI-Avtar") [2] as Sprite;
j2datikz6#
资源.负载在目录“Assets/Resources”中搜索,这就是为什么您需要执行
_sprites = Resources.LoadAll<Sprite>(spritesPath);
或
_sprites = Resources.Load<Sprite>(spritesPath);
以spritesPath作为相对路径。如果您需要从文件夹“Assets/Resources/Sprites”加载所有内容,则只需写入“Sprites”。在此之后,您可以执行以下操作:
var sprite = sprites[0];
var sprite = _sprites.Where(a => a.name == "Sprite_Name_Needed").First();
pjngdqdw7#
Unity的脚本参考没有说你需要在Load之后写<Sprite>。所以我在加载sprite时遇到了问题,尽管我的sprite在Resources目录中。
Load
<Sprite>
olmpazwi8#
我刚用了Resources. Load来加载我的sprite,发现结果是Texture2D。所以我用Sprite. Create来创建一个新的带有Texture2D的sprite来解决这个问题。
g2ieeal79#
我需要一个不同的解决方案来解决这个问题。当我仔细检查我的精灵时,我看到下拉菜单“精灵模式”是空的(尽管我认为这是不可能的)。一旦我选择了单个并应用了修改,问题就消失了。
9条答案
按热度按时间aurhwmvo1#
Resources.Load
将搜索Assets/Resources
中的目录。如果你想把它放在
Sprites
目录下,那么把它放在Resources
目录下(例如Assets/Resources/Sprites
)。然后,您可以像这样加载它:
还要确保您已在检查器中将图像类型设定为“精灵”。
如果要加载多个sprite,请使用以下命令:
有关详细信息,请参阅this。
aij0ehis2#
将
awesome.png
放置在Assets/Resources/
中(可以有子文件夹),然后用途:http://docs.unity3d.com/ScriptReference/Resources.html
还有LoadAll,“加载Resources文件夹路径下的文件夹或文件中的所有资源。"
mwngjboj3#
我知道这是一个老职位,但如果它仍然不工作,只是加载资源,那么我们必须添加纹理以及。我这样做。
j8ag8udp4#
您需要输入资源的完整路径。在这种情况下,请尝试使用路径“Sprites/Graphics_3”。
amrnrhlw5#
j2datikz6#
资源.负载在目录“Assets/Resources”中搜索,这就是为什么您需要执行
或
以spritesPath作为相对路径。如果您需要从文件夹“Assets/Resources/Sprites”加载所有内容,则只需写入“Sprites”。
在此之后,您可以执行以下操作:
或
pjngdqdw7#
Unity的脚本参考没有说你需要在
Load
之后写<Sprite>
。所以我在加载sprite时遇到了问题,尽管我的sprite在Resources目录中。olmpazwi8#
我刚用了Resources. Load来加载我的sprite,发现结果是Texture2D。所以我用Sprite. Create来创建一个新的带有Texture2D的sprite来解决这个问题。
g2ieeal79#
我需要一个不同的解决方案来解决这个问题。当我仔细检查我的精灵时,我看到下拉菜单“精灵模式”是空的(尽管我认为这是不可能的)。一旦我选择了单个并应用了修改,问题就消失了。