网站首页 > 技术文章 正文
大家好!不知道大家有没有遇到过这样的一个问题,就是自定义的一些组件,比如自定义的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,然后统一的配置一下其他东西。
本期视频到这里了,谢谢大家。
- 上一篇: Windows7事件ID10,WMI错误的解决方法
- 下一篇: H5 事件(h5事件前端侧边滑动返回)
猜你喜欢
- 2024-09-21 VBA对象的方法、属性、事件及编程小技巧
- 2024-09-21 看我如何把NIO拉下神坛(将你拉下神坛)
- 2024-09-21 一篇文章搞懂 Python select 模块
- 2024-09-21 分享测试环境中一条sql拖垮整个数据库的解决思路
- 2024-09-21 Java nio 空轮询bug到底是什么(netty 空轮询)
- 2024-09-21 澳洲最大杏仁生产商Select Harvests旗下站点发生火灾事件
- 2024-09-21 给layui select元素的下拉选项增加title提示
- 2024-09-21 湾岸传说|起底大阪湾岸最速车队(大阪湾地理位置)
- 2024-09-21 你知道什么是Select函数吗?(select()函数)
- 2024-09-21 H5 事件(h5事件前端侧边滑动返回)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 568℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 509℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 467℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 446℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 444℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)