如果Image,Text不需要点击事件,一定不要勾选Raycast Target复选框,因为UGUI的事件系统会遍历出所有带Raycast Target的组件,这无疑会带来一些不必要的消耗。
描边Outline的原理就是在原有Text组件的基础上在上下左右各边多画了一遍,所以它的效率是很低的,阴影Shadow会比描边好很多,因为它只需要多画一遍,所以能用阴影就不要用描边。
动态字体比如用户输入可以用TextMeshPro插件来代替。
Image组件使用Sprite时,可以使用Atlas来合并批次,但是RawImage组件却不能,每个RawImage就占一次DrawCall,但它的初始化速度是最快的,可以使用它的UV Rect属性来优化小地图。
Toggle自带回调bool类型参数selected,Slider自带回调float类型参数value。
UGUI会自动合并批次,原理是它会把一个Canvas下的所有元素合并在一个Mesh里。
因为任意一个元素发生位置,大小的改变,就需要重新合并所有元素的Mesh,如果这种元素多的话就会造成卡顿,所以为了避免这种情况,可以把会频繁改变位置,大小的元素单独设置成一个Canvas。
为了减少DrawCall,我们可以把多张图片合并在一个图集Atlas中,如果运行时需要更换Image中的Sprite,就可以通过加载图集的方式去读取它。为了便于管理,可以根据项目功能类型创建多个图集。