Unity 制作编辑器工具的注意点

本文探讨了在Unity中制作编辑器工具时遇到的挑战,主要涉及GUI、GUILayout、EditorGUI和EditorGUILayout四个类的使用。强调了布局管理和事件监听的注意事项,包括GUILayout的空间控制和自定义区域,以及GUI和EditorGUI的手动布局和全局间隔管理。同时,指出了监听数据事件的潜在问题及两种解决策略:分离绘制与触发,以及通过控制GUI.enabled来主动阻断交互。
摘要由CSDN通过智能技术生成

Unity中制作Editor工具,采用的OnGUI的方式,因此比较麻烦,也有很多容易犯的错误。

GUI、GUILayout、EditorGUI、EditorGUILayout这4个类是用来绘制界面的。

GUI和EditorGUI是一组。EditorGUI是Unity封装过的,里面有很多可以直接调用的函数用来绘制特殊字段,例如Int,Object,Float等

GUILayout和EditorGUILayout是一组。Unity封装了一个布局的功能。

一、GUILayout和EditorGUILayout的使用

layout是以一个范围进行布局的,如果是自定义窗口,这个范围默认是整个窗口。

  GUILayout.BeginArea和  GUILayout.EndArea 可以自定义这个范围。

 GUILayout.Space() 可以帮助控制间隔。

 

二、GUIEditorGUI的使用

因为不会自动布局,所以需要传入rect作为绘制的范围。

x和y的间隔最好定一个全局的,然后按顺序渲染就行。

 

三、监听数据事件

在同一个Ongui函数内从后向前触发事件,就是同一个ongui函数中,绘制后面的会先触发点击事件。所以如果Ongui中有绘制重叠的交互事件可能会有错。

两种比较麻烦的办法:

1.将绘制和触发分开,然后在绘制之前,以正常的前后顺序调用相应触发判断

 public void CheckMouseEvent()
//        {
//            if (Event.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值