IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity Editor编辑扩展 -> 正文阅读

[游戏开发]Unity Editor编辑扩展

面板按钮扩展

在Assets下新建Editor文件,创建一个类,引用命名空间UnityEditor
写好一个静态方法,在方法上加一个属性[MenuItem("")]
[MenuItem(“Tool/sss”)]
[MenuItem(“Tool/sss”,bool isValidateFunction,int priority)
isValidateFunction 这个方法执行前是否需要验证,验证通过才能点击执行,否则为灰色
priority:显示优先级,默认为1000,优先级相差10以上,会进行分组,有线分割开来

菜单栏扩展

[MenuItem(“Tool/sss”)]
那么在菜单栏就可以看到了
Hierarchy面板右键扩展
路径以GameObject开始, 将优先级弄成10以上就可以了
例如:[MenuItem(“GameObject/XP/XX”,false,1)]

Project面板右键扩展

路径以Assets开始
例如[MenuItem(“Assets/XP”)]

Inspector脚本面板右键扩展

方法1,在脚本的内部写
利用[ContextMenu(“XX”)],放在任意方法前
方法2,在Editor文件下的类写,
利用[MenuItem()],需要以CONTEXT/脚本的名字/自定义名字
需要放在一个静态方法前,操作这个组件的话,在静态方法中添加参数对象(MenuCommand mc),mc.context获取当前操作的组件
例如:
[MenuItem(“CONTEXT/Player/TEST”)]
static void Test(MenuCommand mc)
{
Player player =mc.context as Player;
}
这个可以用在一些封装好的组件,比如Unity的内置组件Rigidbody

获取当前鼠标选择的物体

通过类Selection
activeGameObject 获取当前选择的游戏物体,只要是GameObject的类型都可以
activeObject 不单单是游戏物体,Assets下的任意文件都可以
反之objects和gameobjects就是所有选择的物体,先选择的在前

Editor脚本下给一些操作添加撤销记录

通过Editor下通过代码操作的记录是无法通过Ctrl+Z进行撤销,利用Undo这个类
例如设置父节点或者删除物体,调用Undo类中的设置父节点(SetTransformParent),删除物体(DestroyObjectImmediate),而不是调用Transform.SetParent(),GameObject.DestroyImmediate()
例如通过Editor下修改某个对象的属性,通过Ctrl+Z撤销操作
Undo.RecordObject(Object obj,string name); 需要放在更改操作前

给这些方法增加快捷键***

在路径后面加一个空格,字母键位对应小写字母,shift对应#,ctrl对应%,alt对应&,
一些特殊键位:LEFT(←)、RIGHT(→)、UP(↑)、DOWN(↓)、F1 … F12、HOME、END、PGUP、PGDN
如果是单个键,只能是除了ctrl和shift和alt其他以外的任何键位,需要在之前加上下线(_),例如[MenuItem(“Tool/sss _5”)] [MenuItem(“Tool/sss _F12”)] [MenuItem(“Tool/sss _a”)]
组合键,必须是以ctrl或者shift或者alt开头的键位开头,前面不需要加下划线
例如
[MenuItem(“Tool/sss %a”)][MenuItem(“Tool/sss %F1”)]
注意,组合键只能最后只能一个键,前面可以放%#&
例如[MenuItem(“Tool/sss %#&a”)] 可以
[MenuItem(“Tool/sss %ab”)] 不行

给方法加上验证方式

再添加一个静态方法,方法上加上[MenuItem("",true,11)],返回值为bool
两个方法首先路径要相同,验证方法MenuItem中isValidateFunction为true
返回值为true才能点击,否则为灰色的不可点击状态

给Inspector面板上的属性右键扩展按钮

[ContextMenuItem("","")],放在可以在面板显示的字段上
第一个参数:面板显示名称
第二个参数:方法名字

向导

创建一个类XPWizard用来存放向导的属性,继承ScriptableWizard
显示向导:ScriptableWizard.DisplayWizard< XPWizard>(string title,string createButtonName,otherButtonName);
向导只能有两个按钮,可以选择创建一个按钮还是两个按钮
title:向导的标题 ,createButtonName:修改创建按钮的名字,默认为Create,otherButtonName :其他按钮的名字
点击向导中的创建按钮的监听方法:void OnWizardCreate()
打开向导中时调用和里面的值被修改是调用:void OnWizardUpdate()
点击其他按钮的方法: void OnWizardOtherButton()
错误信息:errorString,红色提示文字,动态赋值
帮助信息:helpString,正常颜色提示,动态赋值
底下按钮是否可点:isValid

Editor保存数据

EditorPrefs.SetInt(”AA",1); EditorPrefs.GetInt(“AA”);

编辑器工具:EditorUtility

自定义进度条  :  EditorUtility.DisplayProgressBar(string title,string info,float progress);
                               title:标题   info 内容     progress : 进度(0-1)
                             默认没有取消按钮,一旦开始,无法中止,
                            调用: Editor Utility.ClearProgressBar
  对话框:EditorUtility.DisplayDialog(string title,string message,string  ok,string cancel)
                  title:标题   message: 对话框内容   ok :确认按钮的文本   cancel 取消按钮的文本
                 返回值为bool值,点击OK返回true,点击cancel返回false

自定义窗口:

创建一个类XPWindow继承EditorWindow,
显示窗口:
XPWindow xpWindow = EditorWindow.GetWindow();
xpWindow.show();
在OnGui中绘制这个窗口(EditorGUILayout或者GUILayout)
显示提示信息:ShowNotification(GUIContent notification);

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 11:09:07  更:2021-09-07 11:10:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 11:27:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码