写点什么

NFT 元宇宙链游系统开发逻辑分析

作者:Congge420
  • 2023-05-18
    广东
  • 本文字数:1454 字

    阅读完需:约 5 分钟

区块链构建一个开放的稳定的价值载体,为数字化的价值提供流动协作的条件,构建一个完整的世界观体验还需要一个庞大的基础设施。利用 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 组件引起重建问题

用户头像

Congge420

关注

还未添加个人签名 2023-05-12 加入

还未添加个人简介

评论

发布
暂无评论
NFT元宇宙链游系统开发逻辑分析_区块链_Congge420_InfoQ写作社区