携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
1、打包回调
需要给方法添加标签:
[PostProcessBuild(1)]
2、图标获取
Unity提供了图标库,图标获取的方法为:
iconRefresh = EditorGUIUtility.IconContent("Refresh");
此外,可以给图标设置提示内容,方便理解图标含义,代码如下:
iconRefresh.tooltip = "Refresh Version";
3、AssetDatabase
3.1 加载文件
文件加载方法:
AssetDatabase.LoadAssetAtPath(path);
3.2 获取路径
获取文件路径代码:
AssetDatabase.GetAssetPath(object);
获取所有资源路径:
AssetDatabase.GetAllAssetPaths();
3.3 导入资源
可以通过代码导入资源,使用方法如下:
AssetDatabase.ImportAsset(path);
3.4 创建资源
创建资源的方法:
AssetDatabase.CreateAsset(asset, path);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
3.5 查找资源
代码可以查找资源,例如查找你Prefab:
AssetDatabase.FindAssets("t:prefab", new string[] { "Assets" });
4、禁用组件
可以过代码禁用组件,可以实现控制组件是否可用,用以Toggle等控制其他组件:
EditorGUI.BeginDisabledGroup(bool);
EditorGUI.EndDisabledGroup();
5、选中
定位文件位置,可用于生成文件后快速定位:
EditorGUIUtility.PingObject(object);
选中Inspector对象:
Selection.SetActiveObjectWithContext(obj, obj);
6、菜单
在菜单栏生成一个Tools/xxx的快捷按钮:
[MenuItem("Tools/xxx")]
通过菜单名执行编辑器操作:
EditorApplication.ExecuteMenuItem("Tools/xxx")
7、 进度条
生成进度条,并设置进度:
EditorUtillty.DisplayProgressBar("title", "info", 0);
8、打开目录
EditorUtillty.RevealInFinder(path);
9、添加?的文档跳转
[HelpURL("https://thoughts.teambition.com/workspaces/")]
10、选择
10.1 对象选择
//返回当前点击的场景游戏物体或Project Prefab(选择多个则返回第一个选择,未选择则返回null)
Selection.activeGameObejct
//返回当前点击的场景游戏物体transform
Selection.activeTransform
//返回当前点击的场景游戏物体或Project资产文件
Selection.activeObject
//返回一个数组,内容为当前点击场景物体或Project Prefab,非GameObject的选择不会加入数组。未选择返回长度为0的数组
Selection.gameObjects
//返回当前点击的场景物体或Project资源(数组)
Selection.objects
//返回当前点击的场景物体(数组)
Selection.transforms
//委托,选择变化时调用
Selection.selectionChanged
10.2 方法
//选择项中是否包含物体
public static bool Selection.Contains(int instanceID)
public static bool Selection.Contains(Object obj)
//返回按类型与模式过滤当前选择
public static T[] GetFiltered<T>(SelectionMode mode);
//允许使用SelectionMode对选择类型进行颗粒度控制
public static Transform[] GetTransforms(SelectionMode mode);