优秀的编程知识分享平台

网站首页 > 技术文章 正文

Unity自定义inspector样式(unity生成设置)

nanyue 2024-09-21 19:59:03 技术文章 6 ℃

大家好!不知道大家有没有遇到过这样的一个问题,就是自定义的一些组件,比如自定义的button这样一个组件,当多选的时候会显示party objectedtnot supported这样一个提示,要单独选一个是能正常显示的,单选一个也能看到它都有导航的线路图,当多选之后也看不到了。

这种问题怎么解决?这种情况就是在于多选的编辑功能需要去单独的定义。怎么做?因为这东西是可以看一下把它关掉,现在是看不到的。这个button是直接继承至selectable,正常selectable东西看到自己原生的button,可以随便加一个,它也是setable,但是它是能够正常写这东西的,哪怕有多个这样的button,多选之后也能正常显示。

为什么我能不行?因为这个东西需要有一个单独的脚本来进行定义。来找一下button在哪?button是在package里面有一个Unity UI,里面有UI,可以找到,在editor里面正常button的东西是在runtime里面,button在这。

在editor里面有一个叫button editor的东西,这个东西是用来定义按钮的,inspector窗口长什么样,可以来看一眼它里面写了什么?它里面写了这些东西,看里面定义了一个onclick,就是button onclick事件,在这定义了之后,它在这里进行了绘制,才会显示到inspector窗口里面。

把这一段复制一份,新建一个MUI button的Edit,把这个东西改回来,因为刚才为了演示把它改掉了,改成自定义的button类型。先来看一眼,这个时候再多选,它就可以正常显示了,以导航的路线图也显示出来了。现在具体讲一下这里面究竟是干了些什么事情。

首先button里面跟button不一样,定了是两个事件,一个是on select事件,就是它被选中的事件。因为一些选中的动画,播放的也能看出来,选中的时候是有一个这样效果的。选中之后,比如按回车是有个submit,submit也就说for the CLICK的事件,所以是有一个CLICK的事件。

需要把这两个东西都给它显示到这个位置上,怎么做?就模仿button那个方法,也定义两个可序列化的属性。在only enable里面,通过find property这个名字就是这个的名字,把它存下来,存下来之后通过Edit GUl layout的方法把它给作为一个属性绘制上去。

看这里写的什么?首先base点on inspect,GUI是调它的一个就是负类selectable的editor的方法,它就会绘制那些基础的东西,可以把后面注释掉就知道了。把这注释掉,再看一眼,它只绘制了这些东西,就没有那两个事件,这个东西就是selectable,也就说所有的Unity里面可选中的UI组件,它自带了一些东西,包括inputfield也有,这些东西都有。

需要自己绘制画,加上这个东西,首先的space就是加一个空格,空行就是它会让间隔变得更大一点,默认是这么小的间隔,加了一个space之后会上下的间隔会大一点,然后就是让它更新一下,具体干什么我也不知道,我是照着抄过来的。

这两个就是把那两个属性给它绘制上去,这就是让这些应用应用的修改,这样东西就已经出来了,以及它的导航线路图也能看到了,这样就方便多选,统一修改。比如统一选择它的navigation的模式是automatic,然后统一的配置一下其他东西。

本期视频到这里了,谢谢大家。

Tags:

最近发表
标签列表