Unity中的材料列表

时间:2016-08-15 13:52:17

标签: c# unity3d 3d

Unity项目中有一个文件夹,其中包含一些材料文件。这些材料可以分配给各种网格等。我想有一个这些材料的列表,并在Update()中循环遍历这个列表。

有没有办法自动维护此列表 - 我将材料文件添加到文件夹,相应的Material对象被添加到此列表中?

1 个答案:

答案 0 :(得分:2)

您需要循环浏览文件夹并查找具有.mat扩展名的每个文件,然后手动加载它。

查看File中的c#DirectorySystem.IO类来获取素材文件的名称。 接下来按Resources.Load() i-e:

加载它们
Resources.Load("Material/Night_Sky", typeof(Material)) as Material;

修改 上述解决方案仅适用于编辑器,因为您无法在构建中获取具有System.IO的材料的名称。 Resources.Load在构建中可以正常工作,但您需要材料名称。 正如评论中所提到的Resources.LoadAll()将完成这项工作。 此外,对于Resources.Load()Resources.LoadAll(),您需要将要加载的所有素材放入Resources个文件夹中:

如果材料的路径为:Assets\Resources\Materials,则需要使用:

Resources.LoadAll("Materials")

文档的有用链接:
Resources.LoadAll
LoadingResourcesatRuntime