问题描述
我必须编写一个编辑器脚本,将导入的场景(使用内部过程)的内容保存到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 (将#修改为@)