如何解决如何从编辑器脚本中的场景中提取每种材料?
我必须编写一个编辑器脚本,将导入的场景(使用内部过程)的内容保存到Unity上。导入本身运行良好,我每个GameObject都有各自的材质,其中一些材质是通过 AssetBundle 导入的。
因此,当我保存场景时,我丢失了一些材质,因为它们来自AssetBundles。
为了避免这个问题,我必须找到一种方法来将所有AssetBundle资源保存到Unity项目中,以保留我的材料引用。
目前,我尝试通过FindObjectsOfType
获取所有渲染器。这是代码段:
foreach (var renderer in FindObjectsOfType<Renderer>())
{
var materials = renderer.sharedMaterials;
for (var i = 0; i < renderer.sharedMaterials.Length; i++)
{
var materialPath = materialsPath + "/Materials/" + materials[i].name + ".mat";
if (!AssetDatabase.Contains(materials[i]))
{
AssetDatabase.CreateAsset(materials[i],materialPath);
}
}
}
这样可以保留材料,但丢弃纹理。 如果您想获得更多详细信息以提供帮助,请随时询问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。