共享一下,有时间会加注释的
起因是这样的,有大概100多个预设,我买的一个场景模型包
但是我不喜欢它的贴图,就自己做了另一套
如果是挨个换材质的话,我肯定会疯掉的啊
就琢磨还是写个编辑器算了
其实,编辑器也没有省时间,一个多小时,边写边测试
其实有这个事件,早就全替换完了
但结果虽然一样,但过程里面有收获啊~~
期间遇到的问题:
1.assetsdata的loadasset方法很操蛋,路径名称不能是全路径,需要相对路径,用doc的话来说就是project路径下的文件位置
这个折磨了我好久,google一下才明白的
2.还是loadallassetsatpath,这个方法的作用和名字严重不一致,一点都不信达雅,并不是读取路径下的所有资源,而是读取一个资源的所有相关资源(fbx模型的话,就是材质,贴图,动画一起读)
3.在editor脚本里面,不要直接访问material,而是sharedMaterial,因为是非运行状态,没有办法缓存新的材质instance
4.如果想要将场景中的预设,通过代码apply的话,就执行这个....这个方法词不达意啊,居然是替换掉....orz
PrefabUtility.ReplacePrefab( go, PrefabUtility.GetPrefabParent( go ), ReplacePrefabOptions.ConnectToPrefab );
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using System.IO;
public class ExchangeMaterial : Ed