赞
踩
1.打开进度条
EditorUtility.DisplayProgressBar
2.清除进度条
EditorUtility.ClearProgressBar();
3.显示一个对话框
EditorUtility.DisplayDialog("WarmPrompt", "Export Done,Check Assets", "ok", "cancel")
4.打开一个浏览目录
EditorUtility.RevealInFinder(filePath);
5.标记目标物体已改变,立即做出改变
EditorUtility.SetDirty(targget)
6.刷新编辑器,使刚改变的资源立刻被导入。
AssetDatabase.Refresh()
7.保存所有修改
AssetDatabase.SaveAssets()
8.第二个参数表示是否删除目标文件夹中的子文件夹及子文件
Directory.Delete(exportPath, true);
9. 保存变化后的值
serializedObject.ApplyModifiedProperties
10.获取当前场景
Scene scene = SceneManager.GetActiveScene ();
11.编辑模式下打开场景
UnityEditor.SceneManagement.EditorSceneManager.OpenScene(“Assets/Demo/UIDemo/UIDemoMain.unity");
Unity3d编辑器中有用的标签和方法:
1.[System.Serializable]:
tells unity to serialize this class if it's used in a public array or as a public variable in a component.
2.[CanEditMultipleObjects]:
当我们选择同一种类型的多个组件时,我们自定义的面板是可以支持同时修改所有选中的组件的
如果我们在修改参数时使用的是serializedObject,那么这个功能Unity会自动完成的
但如果我们是直接使用"target"来访问和修改参数的话,这个变量只能访问到选中的第一个组件
此时我们可以使用"targets"来得到所有选中的相同组件
3.[CustomEditor()]:
我们可以通过为一个类定义它的Editor类型的[CustomEditor]来自定义该类的绘制界面
这需要把这个文件放在Editor目录下
4.[InitializeOnLoad]:
可以确保这个类的构造器在编辑器加载时就被调用
4. EditorGUI.BeginChangeCheck()和EditorGUI.EndChangeCheck():
会检测它们之间的GUI有没有被修改
参考:
https://www.cnblogs.com/msxh/p/9215015.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。