NFT 元宇宙链游系统开发逻辑分析
区块链构建一个开放的稳定的价值载体,为数字化的价值提供流动协作的条件,构建一个完整的世界观体验还需要一个庞大的基础设施。利用 5G、VR 设备、IoT 设施、AI 技术算法实现一个不可或缺的关键产业支柱。在区块链方向,数字分身系统,去中心化的存储以及云计算仍有可持续化的发展。
根据支持产业的发展水平将元宇宙分为以下几个阶段
第一阶段——社交+游戏:浸式的体验形式,在虚拟世界中实现基本的娱乐,社交功能还是可以的,部分的玩家对元宇宙的归属非常的强。
第二阶段——虚拟现实相结合的模糊概念:将消费,金融生活服务等真实的世界融入到其中,用技术,时间进一步的提升元宇宙成为生活中的一部分。
第三阶段——全真互联网的数字元宇宙,虚拟与现实世界密不可分,用户技术和使用时间长,在虚拟世界中形成新的文明。
Rebuild 的程序流程 NFT 链游开发源码模式威:Congge420 作者:
Image,Text 都是继承 Graphic,Graphic 有 ICanvasElement 接口,实现 rebuild 函数
public interface ICanvasElement
{
/// <summary>
/// Rebuild the element for the given stage.
/// </summary>
/// <param name="executing">The current CanvasUpdate stage being rebuild.</param>
/// //根据 CanvasUpdate 的不同阶段重建元素
void Rebuild(CanvasUpdate executing);
CanvasUpdateRegistry 监听 Canvas 的 willRenderCanvases 事件,这个事件会在渲染前进行每帧调用
public class CanvasUpdateRegistry
{
//布局重建队列,当 UI 元素的布局需要更新时将其加入队列
private readonly IndexedSet<ICanvasElement> m_LayoutRebuildQueue = new IndexedSet<ICanvasElement>();
//图形重建队列,当 UI 元素的图像需要更新时将其加入队列
private readonly IndexedSet<ICanvasElement> m_GraphicRebuildQueue = new IndexedSet<ICanvasElement>();
protected CanvasUpdateRegistry()
{
//监听了 Canvas 的 willRenderCanvases 事件,这个事件会在渲染前进行每帧调用
Canvas.willRenderCanvases += PerformUpdate;
}
PerformUpdate 收集布局重建队列,图形重建队列调用 ICanvasElement.Rebuild 完成重建
何时加入重建
通过设置“脏数据”实现的,包括布局(Layout)、材质(Material)和顶点(Vertices)三部分,设置布局为脏,将进行布局重建,设置顶点或材质为脏,则进行图形重建。布局重建会将自身加入 m_LayoutRebuildQueue 中,图形重建则会将自身加入 m_GraphicRebuildQueue 中,等待被调用。
SetLayoutDirty:加入到布局重建队列
SetVerticesDirty,SetMaterialDirty:材质,顶点变换加入到图形重建队列
布局重建:位置或者大小;
图像重建:顶点变化,材质变化(大小,旋转以及文字变化、图片的修改)
优化
主要目标,把 Profile 里 Canvas.SendWillRenderCanv 参数调小。通过限制顶点数量,顶点变化等。
text 属性改变(“123”–>“1234”),触发 SetLayoutDirty:在做倒计时相关,按照每 1s 改变,不要实时改变
改文字,图片颜色,触发 SetVerticesDirty(顶点改变),所以改图片颜色最好是改材质球颜色
layout 组件引起重建问题
评论