Unity3D研究院编辑器之Editor的GUI的事件拦截

OnGUI是Unity上一个时代的UI系统,而现在运行时的UI系统已经被UGUI取代,但是Editor的UI还是在用老的这一套GUI系统。比如unity编辑器里的所有窗口,布局,按钮,拖动条、滚动等等都是用GUI来写的。GUI提供了一套Event事件系统,虽然不能模拟它的事件(其实是可以发的 EditorWindow.SendEvent ),但是确可以进行拦截。

比如说:

1.限制Hierarchy视图的树状结构。(让某些对象不可随意移动层次结构)

2.限制Project里的资源不能任意拖动(限制美术只能把一些资源放在规定的文件夹下面)

3.限制GUI中按钮的点击

4.拖拽资源或者对象绑定的时候执行一些自己的代码 等等

把下面这段代码拷贝到你的工程中,你会发现你的Hierarchy视图还有Porject视图中的所有对象不能任意拖动了。。

首先获取事件必须在OnGUI中完成,Editor下也可以在类似的XXXOnGUI中完成。

Event.current就是获取当前的事件,所有的事件都是由我们自己手动操作鼠标或者键盘产生的。比如 按下、抬起、移动、拖拽、右键、滚动、粘贴、复制、选择。全选 等 事件、详细的事件类型在这里。 http://docs.unity3d.com/ScriptReference/EventType.html

代码中只需要去判断当前事件的类型,假如不想让这个事件渗透执行下去,那么就调用e.Use() 方法。这个方法的意思就是把这个事件删除了,不让后面的代码能监听到它。

剩下的就是配合Selection.objects和 DragAndDrop.objectReferences 以及Input.mousePostion 一类的方法 来判断当前操作的对象,通过逻辑来灵活的判断是否要执行事件。或者是执行事件的同时在执行一些自己的代码。。

OK Editor下的就说完了,我们再说说运行时的。如下图所示,我可以通过事件拦截的方法让这个按钮永远得不到点击的响应。

Unity3D研究院编辑器之Editor的GUI的事件拦截(二十一) - 雨松MOMO程序研究院 - 1
代码是这样的

总体来说我觉得Editor下还是很有必要监听事件类型的,因为想做一个好用的编辑器真的离不开这些。 最后欢迎大家在下面给我留言,我们一起讨论GUI的事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity 3D运行时编辑器插件Runtime Editor 3.5.0是一款非常优秀的工具,它可以让开发者在游戏运行时对游戏进行修改和编辑,使游戏开发更加便捷和高效。该插件支持在Unity编辑器中实时编辑、预览和调试游戏,而且还有非常友好的界面,易于上手使用。此外,它也支持一系列常用操作,如:拖拽物体、创建物体、编辑材质、修改脚本、编辑动画等等。总之,使用这款插件可以充分发挥开发者的想象力和创造力,大大提升游戏开发的效率和质量。同时,它也是一款开放源代码的插件,在社区得到了广泛的应用和支持。唯一需要注意的是,在使用该插件时需要注意版本的适配性,不同版本的Unity可能会有一定的兼容性问题。总体来说,对于有一定开发经验的游戏开发者来说,Runtime Editor 3.5.0是一款非常实用的工具,可以让他们更加专注于游戏的创意和实现,而不是一些繁琐的操作。 ### 回答2: Unity 3D 运行时编辑器插件 Runtime Editor 3.5.0 是一个强大的工具,它为 Unity 3D 用户提供了更加灵活、高效的编辑体验。该插件可以让用户在运行游戏的过程中随时对场景进行编辑,添加、删除和调整物体、组件、材质等元素,以及实时预览游戏效果。 Runtime Editor 3.5.0 提供了许多实用的功能和工具,使得用户能够更快速、方便地完成场景的制作。其中一些重要的功能包括: 1. 选择工具:用户可以通过选择工具来选择物体、组件、材质等元素,并可以对其进行编辑和调整。 2. 创建工具:用户可以通过创建工具来创建新的物体、组件、材质等元素,并可以对其进行定制化的设置和编辑。 3. 面板工具:用户可以在编辑器面板中访问和编辑该插件提供的所有功能和工具,并可以根据需要自定义和布置面板。 4. 预设工具:用户可以通过预设工具来快速添加和调整场景中的预设,以及对其进行设置和编辑。 另外,该插件还包括了许多其他实用的功能和工具,如实时查看场景数据、调整游戏场景视角、导出场景数据等,大大提高了 Unity 3D 用户的工作效率和创作体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值