菜单工具:Tools/MenuItem [MenuItem(“Tools/MenuItem”)]
Editor目录下 资源目录的工具:MenuItem [MenuItem(“Assets/MenuItem”)] public static void CreatMeshAsset() { GameObject go = GameObject.Instantiate(Selection.activeGameObject) Mesh mesh = go.GetComponent().mesh; AssetDatabase.CreateAsset(mesh , “Assets/” + name + “.asset”); GameObject.DestroyImmediate(go) }
C# GameObject go = new GameObject() go.AddComponent().mesh = ab.LoaddAsset() as mesh;
shader.parse()调用:加载 prefab、material、shader 形式的assetbundle时和Shader.Find会出现 但Shader.WarmupAllShader() 不会调用
因此,重新从代码构建prefab和其meshfilter以及meshrender,可以避免Shader.Parse的调用
使用自己的FindShader 替换Shader.Find 注意在其shader ab确保在游戏整个过程中独立加载,且不会被依赖项说卸载
|