【问题标题】:Unity 3D: Load sprites from a folderUnity 3D:从文件夹加载精灵
【发布时间】:2016-04-07 09:31:45
【问题描述】:

是否可以在 Unity 3D 中使用 C# 创建一个数组以从 文件夹 中随机加载精灵,而不是从精灵表中?如果是,我使用什么代码来引用该文件夹?据我所知,精灵通常被编码为使用 random.range 加载一个使用精灵表的数组,而不是实际访问文件夹。我能找到的唯一与此类似的东西就在这里:

http://docs.unity3d.com/ScriptReference/Resources.html

但是正如您所看到的,您只能从“资产”文件夹中名为“资源”的文件夹中加载,可能我弄错了,但这似乎也只能通过游戏对象来完成。 (?)

【问题讨论】:

  • 更具体一点,你应该看看Resouces.Load。您可以从 Unity 项目中名为 Resources 的 any 资产文件夹加载。如果您想在游戏运行时从某个任意位置加载,那就另当别论了——请查看 Unity 答案中的 Loading texture file from png/jpg file on disk。 (无论哪种方式,我认为您应该为清楚起见编辑问题!)
  • 谢谢大家!我得到了它的工作:Sprite[]enemySprites = Resources.LoadAll("Sprites/Enemies");
  • @Veniversum 您可以通过在下面添加答案来回答您自己的问题。这让其他人更容易找到您的解决方案。
  • 好的,谢谢;这就像我第二次在这里发帖。我很感激这个提示

标签: c# arrays unity3d sprite-sheet


【解决方案1】:

您正在查看正确的文档。

精灵是一个游戏对象,只是一个更具体的用于 2d 游戏的对象。所以你会创建你的精灵并制作它们的预制件。这些预制件位于 Resources 文件夹中,代码如下:

GameObject [] objs = (GameObject[])Resources.LoadAll("SpriteFolder");
GameObject randomSprite = objs[Random.Range(0, objs.Length)];

【讨论】:

    【解决方案2】:

    这是我最终使用的:

    Sprite[]enemySprites = Resources.LoadAll("Sprites/Enemies");

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多