竞价单页网站制作教程网站建设详细流程视频

张小明 2026/1/11 16:54:44
竞价单页网站制作教程,网站建设详细流程视频,网站的宣传推广包括,网站的空间是什么UGUI重建流程和优化 参考文献#xff08;五#xff09;UGUI源码分析之Rebuild#xff08;布局重建、图形重绘#xff09;_ugui rebuild-CSDN博客(99 封私信 / 83 条消息) UGUI源码解析#xff08;二十一#xff09;LayoutRebuilder - 知乎(99 封私信 / 83 条消息) UGUI源…UGUI重建流程和优化参考文献五UGUI源码分析之Rebuild布局重建、图形重绘_ugui rebuild-CSDN博客(99 封私信 / 83 条消息) UGUI源码解析二十一LayoutRebuilder - 知乎(99 封私信 / 83 条消息) UGUI源码解析五) CanvasUpdateRegistry - 知乎(99 封私信 / 85 条消息) UGUI UI重建二三事(一) - 知乎(99 封私信 / 85 条消息) UGUI UI重建二三事(二) - 知乎总体流程简述首先我们对UI进行修改时如修改其大小改材质等很多情况下UI会将自己标记为脏然后放进一个队列中。在相机即将渲染时会处理这个队列的元素进行布局的重新计算称作布局重建。然后重新生成graphic的网格称为网格重建。重建过程的主要接口ICanvasElement接口标记此组件需要参与重建。主要是Rebuild方法会在此节点需要重建时调用参数表面重建过程。CanvasUpdate.// 标记了重建过程Prelayout,Layout,PostLayout,PreRender,LatePreRender,MaxUpdateValue,LayoutComplete在布局完成时调用GraphicUpdateComplete在网格重建完成时调用实现情况1.Graphic实现用来生成网格。即网格重建过程。2.LayoutRebuilder实现用来进行布局。即布局重建过程。3.InputField、ScrollRect、Scrollbar、Slider、Toggle实现主要是根据重建过程实现自己的功能。ILayoutElement接口标记此节点需要参与布局重建。给出布局重建时节点的宽高参数。有宽高的minpreferredflexible用于布局。此外layoutPriority标记布局优先级。CalculateLayoutInputHorizontalCalculateLayoutInputVertical这两个方法计算自己的理想宽高。实现情况Image、Text、InputField实现preferredWidthpreferredHeight会返回最合适的大小。ScrollRect实现了所有参数但都返回-1仅供布局系统调用。LayoutElement实现了所有参数并开放到编辑器供配置。ILayoutController接口设置子节点的位置宽高。实现两个方法SetLayoutHorizontal、SetLayoutVertical。作用是设置自己的子节点。实现情况有三个类实现GridLayoutGroupHorizontalLayoutGroupVerticalLayoutGroup重建框架执行流程CanvasUpdateRegistry处理重建的类。待重建元素列表m_LayoutRebuildQueue保存需要更新布局的队列m_GraphicRebuildQueue保存需要更新图形的队列队列元素的类型都是ICanvasElement此接口为布局元素的基类。元素如何加入到重建列表向布局重建队列添加元素的方法为CanvasUpdateRegistry.MarkLayoutForRebuild //将需要重建的元素加入重建列表。实际调用下面的CanvasUpdateRegistry.MarkLayoutRootForRebuild //将需要重建的布局根节点加入重建列表一般情况下各个组件在布局需要修改时调用MarkLayoutForRebuild将自己加入重建列表。比如 OnEnable、OnDisable、OnRectTransformDimensionsChange等向图形重建队列添加元素的方法为CanvasUpdateRegistry.RegisterCanvasElementForGraphicRebuild重建总入口CanvasUpdateRegistry实现单例模式单例的构造函数就向Canvas.willRenderCanvases注册了PerformUpdate函数因此PerformUpdate为重建过程的总入口。PerformUpdate执行逻辑首先调用CleanInvalidItems清理无效布局组件。m_PerformingLayoutUpdate标记了正在进行布局重建。使用SortLayoutList排序。排序依据为父物体层数少的在前。依次对m_LayoutRebuildQueue列表中元素调用Rebuild参数分别是Prelayout、Layout、PostLayout。这就等于进行了重建的三个步骤。其中Layout进行了实际布局重建。最后调用每个元素的LayoutComplete方法。清理m_LayoutRebuildQueue列表。布局重建完成然后进行网格重建。此过程与上面布局重建基本一致。先调用ClipperRegistry.instance.Cull()不用排序依次对m_LayoutRebuildQueue列表中元素调用Rebuild参数分别是PreRender、LatePreRender。最后调用每个元素的GraphicUpdateComplete方法。清理m_GraphicRebuildQueue列表。可以看到基本就是依次通知每个元素重建了。具体行为是让组件自己实现的即调用Rebuild函数每个组件都会重写来实现不同行为。重要组件的具体重建行为Graphic.Rebuild 网格重建实现网格重建即生成图片和文本网格的部分Graphic会在PreRender时检查网格刷新检查材质刷新。生成网格方法是OnPopulateMesh。值得注意的是网格生成后可通过IMeshModifier对网格进行调整实现网格特效。如Shadow。Graphic基类中网格生成是直接创建面片显示纯颜色。Image重写了OnPopulateMesh方法实现了一些特殊填充就是SlicedTiled那些。这部分实现没有技巧全是硬编码Text重写了OnPopulateMesh方法改成文本的网格生成。其实现未开源。不过可以通过m_TempVerts访问到每个字符生成完毕的网格数据。可以用这个做超链接RawImage实现和Graphic基本一致区别在没有主贴图时不会生成网格。ILayoutElement.Rebuild布局重建所有加入布局重建中元素都是RectTransform加入列表时会包一个LayoutRebuilder。LayoutRebuilder在Rebuild的Layout阶段时计算了自己理想宽高。过程PerformLayoutCalculation递归后续遍历所有子节点。即先子节点再自己。会对每个ILayoutElement节点执行一个委托CalculateLayoutInputHorizontal作用是计算自己的最终宽高。随后PerformLayoutControl递归后续遍历所有子节点。即先子节点再自己。会对每个ILayoutController节点执行一个委托SetLayoutHorizontal作用是设置自己的子节点。特别的有时需求会需要我们获取布局完成后的组件位置可调用这个方法立即进行此元素的布局重建。之后可正确获取最佳宽高值。LayoutRebuilder.ForceRebuildLayoutImmediate其实现是创建一个此节点的LayoutRebuilder然后以CanvasUpdate.Layout为参数立即调用一次Rebuild。也就是立即触发一次布局重建。调用参数为布局根节点。总结LayoutGroup的重建过程包括GridLayoutGroupHorizontalLayoutGroupVerticalLayoutGroup调用CalculateLayoutInputHorizontal时LayoutGroup会收集所有子物体保存在m_RectChildren中。有ILayoutIgnorer且ignoreLayout都是false的除外。HorizontalLayoutGroup中重写CalculateLayoutInputHorizontal计算自己宽高。SetLayoutHorizontal执行过程随后SetChildAlongAxisWithScale时设置子节点位置。优化思路可修改源码检查上文提到的两个队列来查看重建情况。重建优化思路基本就是减少重建的触发以减少重建次数。即减少UI元素位置大小图片材质等修改减少mask矩形区域的变更。少用布局组件不会变化的布局组件删除或者关掉。不要频繁修改布局组件元素。OnRectTransformDimensionsChange可观察到此函数在网格需要变化时触发布局重建。如修改AnchorAnchoredPositionPivotSizeDelta大概率导致网格变化产生重建。而如果仅改变ScaleRotationPosition不会发生重建。因此可考虑用scale改变代替enable避免重建。摘抄大佬的笔记总结触发rebuild的情况https://zhuanlan.zhihu.com/p/448293298Text控件 文本的内容及颜色变化、设置是否支持富文本、更改换行模式、设置字体最大最小值、变更文本使用的对齐锚点、设置是否通过几何对齐、变更字体大小、变更是否支持水平及垂直溢出、修改行间距、变更字体样式(正常、斜体.....)。Image控件 颜色变化、变更显示类型(Simple、Sliced、Tiled、Filled)、变更是否应保留Sprite宽高比(Image.preserveAspect属性的变更)FillCenter属性变更(是否渲染平铺或切片图像的中心)、变更填充方式(Horizontal、Vertical、Radial360....)、变更图像填充率(fillAmount)、变更图像顺逆时针填充类型(Image.fillClockwise)、变更填充过程的原点(Image.FillOrigin)。RawImage控件 设置Texture、变更纹理使用的UVRcet、Shadow效果 改变效果的距离(effectDistance)及颜色(effectColor)、变更是否使用Graphic中的Alpha透明度(useGraphicAlpha)。Mask控件 设置是否展示与Mask渲染区域相关的图形(showMaskGraphic),enable发生变化所有继承MaskableGraphic的控件(Image、RawImage、RectMask2D、Text) 设置此图形是否允许被遮盖、enable发生变化、父节点发生变化(TransFromParentChanged)、在Hierachy面板上发生改变(HierachyChanged)。所有继承自BaseMeshEffect的效果类(目前只看到Shadow及PositionAsUV1)的enable变化及应用动画属性的操作。所有继承自Graphic的UI控件材质(material)发生变化。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设与发布需要什么电子商务网站规划报告

建立技术品牌:成为国内TensorRT领域的权威声音 在AI模型从实验室走向产线的今天,一个再精巧的算法如果跑不快、吞吐低、资源消耗大,就等于“纸上谈兵”。尤其是在智能驾驶、视频分析、推荐系统这些对延迟敏感的场景中,推理性能直接…

张小明 2026/1/3 15:21:16 网站建设

常州网站搜索优化广州多区最新通告

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 基于python的微科优选校园招聘平台 …

张小明 2026/1/5 4:02:03 网站建设

企业网站域名主机做网站服务器吗

使用微软Azure机器学习构建预测性维护模型 1. 预测性维护模型概述 预测性维护在制造业等领域具有重要意义,能够带来显著的商业机会。通过机器学习技术,可以利用相关数据构建预测性维护解决方案,提前预测设备故障,减少维修成本和停机时间。 2. 构建模型前的数据准备 数据…

张小明 2026/1/3 15:11:13 网站建设

怎么做qq刷赞网站公司用dw做网站吗

建筑内外墙用底漆是指在涂饰工程涂装时,直接施涂于建筑物内外墙水泥砂浆基材、腻子层或其他基层材料的涂料 。JG/T 210-2018 建筑内外墙用底漆测试项目:测试项目测试方法容器中状态JG/T 210施工性JG/T 210低温稳定性GB/T 9286涂膜外观JG/T 210干燥时间GB…

张小明 2026/1/4 17:08:58 网站建设

浙江标力建设集团网站wordpress腾讯cos

第一章:为什么你的Open-AutoGLM在手机上跑不动?许多开发者尝试将开源大语言模型 Open-AutoGLM 部署到移动设备时,常常遇到运行失败、卡顿甚至闪退的问题。这并非代码本身存在缺陷,而是由移动设备的硬件限制与模型运行需求不匹配所…

张小明 2026/1/4 22:38:46 网站建设

网站开发需解决的难题宁波开发网络推广平台

深入探索Shell编程:位置参数、循环与字符串处理 1. 位置参数的奥秘 位置参数在Shell脚本中扮演着重要角色,它允许我们在脚本执行时传递参数。例如,当我们传递 word words with spaces 作为参数时,不同的引用方式会产生不同的结果: | 引用方式 | 结果 | | ---- | ---…

张小明 2026/1/3 16:36:52 网站建设