如何运用编辑器开发?

网络新闻 2年前 (2023) admin
0

火资源软件2月21日消息,做为一个软件库分享着众多的社交软件包括自带的红包功能,其中包括有单透,秒抢,埋雷,爆粉,机器人,红包辅助软件等等。今天告诉大家如何运用编辑器开发?

引言: 项目开发中,编辑器扩展为开发者提供了开发自定义工具的功用,让开发者愈加便利地运用编辑器开发项目。如若博客中存在错误,还请不吝赐教。一切参考的博客或许视频来源将在文末展现。

扩展: Unity2019.1版本后,官方推出全新的保管形式UI框架-UIElement一款可以轻松扩展uniti编辑器的工具,将来版本例如会支持游戏运转形式。

开发版本: Un2018.1.3f1
编辑器开发入门•该文件夹可以放在项目的任何文件夹下,可以有多个"Editor"文件夹。

•编辑器扩展相关的脚本都要放在该文件夹内,该文件夹中的脚本只会对Uniti编辑器起作用。

•项目打包的时分,不会被打包到项目中。假如编辑器相关脚本不放在该文件夹中,打包项目例如会出错。

•假如非要有些编辑器相关脚本不放在该文件夹中,需求在该类的前后加上UNITY_EDITOR宏定义

•该文件夹需求放在Asset根目录下,用来存储编辑器所需求的照片等资源,书写的时分需求留意两头有空格隔开。此文件夹也不会被打包,拜访办法为:EditorGUIUtility.Load

•当然,也可以在Editor文件夹内创立一个Resourc文件夹,将相关资源放在该文件夹内,经过Resources.Load获取资源,也是可以的。

•该文件夹也需求放在Asset根目录下,可以用来寄存Gizmos.DrawIcon照片资源。

编辑器扩展的命名空间:
UsUnityEditor
添加菜单栏按钮

[MenuItemMyTools/test1,false,prior]
•第一个参数用来表示菜单的途径;
•第二个参数用来判别能否是无效函数,否需求显示;
•第三个参数prioriti优先级,用来表示菜单按钮的先后顺序,默许值为1000普通菜单中的分栏,数值相差大于10
•留意需求是静态办法

例如:[MenuItemMyTools/test1]
也可以添加在Uniti默许的菜单栏中,例如添加到Window菜单中,[MenuItemWindow/test2]添加到Asset下,[MenuItemAssets/Project中的按钮”]
完成点击菜单按钮,删除场景或许Project中选中的多个对象
[MenuItem"MyTool/DeleteA llObj",true]privatstaticboolDeleteValid{ifSelection.objects.Length>0returntrue;elsreturnfalse;}[MenuItem"MyTool/DeleteA llObj",fals]privatstaticvoidMyToolDelet{//Selection.object前往场景或许Project中选择的多个对象 foreachObjectiteminSelection.object{//记载删除操作,允许撤销 Undo.DestroyObjectImmediitem;}}DeleteValid办法是MyToolDelet办法的无效函数,所以第二个参数为true该无效函数用来判别以后能否选择了对象,假如选择了前往true才可以执行MyToolDelet办法。
添放慢捷键
例如:[MenuItemMyTools/test1%_q]快捷键 Ctrl+Q
给某组件添加右键菜单选项

[MenuItemCONTEXT/组件名/按钮名”]
留意CONTEXT大写
[MenuItem"CONTEXT/Rigidbody/Init"]privatstaticvoidRigidbodyInit{//TODO}用于获取以后操作的组件
如下,给自定义的组件PlayerHealth添加右键Init按钮
[MenuItem"CONTEXT/PlayerHealth/Init"]staticvoidInitMenuCommandcmd{PlayerHealthhealth=cmd.contexasPlayerHealth;}给某组件添加左边小齿轮菜单选项
[ContextMenu"FunctionName"]publicvoidFunctionNam{//ToDo}给某属性添加右键菜单选项
[ContextMenuItem"Handle","HandleHealth"]publicfloathealth;privatvoidHandleHealth{//ToDo}P.S.这两个特性是UnityEngin命名空间下的而不像其他[MenuItem]SelectUnityEditor下的
用于获取选择的游戏物体
•Selection.activeGameObject前往第一个选择的场景中的对象
•Selection.gameObject前往场景中选择的多个对象,包括预制体等
•Selection.object前往选择的多个对象
//遍历选择的对象,并立即销毁 foreachobjectobjinSelection.object{DestroyImmediobj;}P.S.Destroi办法会将删除的对象放在缓存中,缓存满了才完全删除,而在编辑器未运转的时分,没有这片缓存的所以需求用DestroyImmedi立即销毁。当然,可以间接运用Undo.DestroyObjectImmedi来销毁对象并记载销毁操作。

总结

以上就是今天所分享的内容了,更多关于软件知识请关注火资源软件,每天都会更新一些优质内容,其中包括淘米购,酒友购,叮咚盲盒,潮豆,微信,惠易购,青蛙易购,红包辅助,淘盟铺,赞聊,熊猫精选,支付宝,香蕉赶集,乐购商城,惠品铺,易民信,享乐好物,多多联盟,海鱼聊,华语商城,乐享购,亲聊,梦幻盲盒,淘个购,杏汇极速版,诚智通,伶信,QQ,淘客购,易民购,苹果微信多开,微信分身,创信,安卓微信多开,优品铺等热门社交平台,软件功能有秒,单透,秒抢,埋雷挂,扫尾,避雷等一些红包强项外挂功能软件免费分享。喜欢的请关注收藏吧!

版权声明:admin 发表于 2023-02-21 20:13:59。
转载请注明:如何运用编辑器开发? | 火资源软件