加载精灵的所有子精灵

时间:2019-04-25 17:02:59

标签: c# unity3d resources sprite

我正在尝试在对象的精灵渲染器中加载给定当前精灵的所有精灵,但是无论我如何尝试,我都无法加载每个单独的精灵(带有多个“帧”的2d精灵,即一个精灵表)

我用过

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

甚至

Resources.LoadAll<Sprite>(Path);

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

我尝试将路径更改为仅使用精灵名称将文件类型包括在内,但没有任何效果。 如果重要的话,我正在使用Unity 2019.1.0f2。

2 个答案:

答案 0 :(得分:0)

所以您想加载一堆精灵吗?
你尝试过吗?

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

如果使用此选项,则您的单位必须有一个名为Resources的文件夹。基本上,它在LoadAll内部的第一个参数是:“ Resources / Sprites”,然后在Sprite文件夹中查找所有属于Sprite的类型。

注意:确保计划使用的所有.png文件都已签名为Sprite(2D和UI),这可以通过单击统一的png并在其右上角(即“纹理类型”)进行。

答案 1 :(得分:0)

这最终是一个简单的误会。 我的文件夹全部都在“资产”文件夹中,而它们本应位于“资产/资源”文件夹中。现在,我可以使用

加载精灵渲染器的精灵的精灵
spriteRenderer.sprite.GetInstanceID()).Replace(".png","").Replace("Assets/Resources/","")

有点长,但是可以用!

感谢路易·英格思隆的提示!