加载精灵的所有子精灵

问题描述 投票:0回答:2

我正在尝试在一个对象上的精灵渲染器中加载所有精灵,但是无论我怎么做,我都无法加载每个单独的精灵(带有多个'帧'的2d精灵,即spritesheet)。

我用过

Resources.LoadAll<Sprite>(AssetDatabase.GetAssetPath(spriteRenderer.sprite.GetInstanceID()).Replace(".png", ""));

乃至

Resources.LoadAll<Sprite>(Path);

但我似乎无法让它加载我想要的东西(通常它根本不起作用,但在Unity的旧版本加载圆形加载条和错误标志)。我已经创建了精灵的帧/子精灵。

我已经尝试将路径更改为仅使用精灵的名称将文件类型包含在其他任何内容中,但无效。如果重要的话,我正在使用Unity 2019.1.0f2。

c# unity3d resources sprite
2个回答
0
投票

所以你想加载一堆精灵吗? 你试过这个吗?

Sprite[] loadedSprites = Resources.LoadAll("Sprites", typeof(Sprite));

如果你使用它,你的团结必须有一个名为Resources的文件夹。基本上它在第一个参数中的LoadAll里面说的是:“Resources / Sprites”然后它查找Sprite文件夹中Sprite的所有类型。

注意:确保计划使用的所有.png文件都被标记为Sprite(2D和UI),这可以通过单击统一和右角的png来完成,它将表示纹理类型。


0
投票

它最终成了一个简单的误解。我的文件夹都在“Assets”文件夹中,而它们应该位于“Assets / Resources”文件夹中。现在我可以使用加载精灵渲染器的精灵的精灵

spriteRenderer.sprite.GetInstanceID()).Replace(".png","").Replace("Assets/Resources/","")

它有点长但它有效!

感谢Louis Ingenthron的暗示!

© www.soinside.com 2019 - 2024. All rights reserved.