学习UGUI源码已经两周有余,写点小总结,废话不多说。
1、调试UGUI源代码
Unity2022.3.f1c1 设置如下:
打开vs就可以直接打断点调试UGUI源码。
2、大纲
查看UGUI的UML图,如下:
由上图可知,所有与UI相关的都是UIBehaviour的子类,UIBehaviour继承MonoBehaviour。其它类都是辅助类。UIBehaviour内部如下:
包含的事件通过事件名就可知道其功能,不再赘述。
3、如何开始
初次阅读面对这么多类不知如何开始,不妨将它分成几个模块,逐步解析。记得学习Unity时,老师说了一个创建游戏的基本思路:游戏世界上本来什么都没有,先有天空,再有大地,然后出现一个物体,最后物体动起来,一个简单的游戏就完成了。
不妨使用该思路来分解UGUI源码:界面上本来什么都没有,先有一个Canvas,然后创建Button,鼠标点击Button有事件响应,一个简单的界面完成了。然后根据该思路,我们可以把UGUI源码分为四个小模块:渲染模块(Graphic),布局模块(Layout),事件模块(EventSystem),可交互模块(Selectable)。
渲染和布局模块把所有的UI元素渲染出来,当可交互模块被点击的时候,事件模块处理相应的事件方法。
渲染模块(Graphic)
可交互模块(Selectable)
布局模块(Layout)
事件模块(EventSystem)