加载精灵的所有子精灵

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加载精灵的所有子精灵相关的知识,希望对你有一定的参考价值。

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

我用过

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

乃至

Resources.LoadAll<Sprite>(Path);

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

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

答案

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

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

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

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

另一答案

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

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

它有点长但它有效!

感谢Louis Ingenthron的暗示!

以上是关于加载精灵的所有子精灵的主要内容,如果未能解决你的问题,请参考以下文章

片段着色器中的OpenGL点精灵旋转

按键精灵,父窗口下很多子窗口怎么找想要的

子精灵的精灵套件碰撞检测

如何在 SpriteKit 中从 Web API 加载精灵表

如何在片段着色器中平铺部分纹理

如何获得具有动作CCRotate的精灵的位置?