Unity项目中有一个文件夹,其中包含一些材料文件。这些材料可以分配给各种网格等。我想有一个这些材料的列表,并在Update()中循环遍历这个列表。
有没有办法自动维护此列表 - 我将材料文件添加到文件夹,相应的Material对象被添加到此列表中?
答案 0 :(得分:2)
您需要循环浏览文件夹并查找具有.mat
扩展名的每个文件,然后手动加载它。
查看File
中的c#Directory
和System.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")