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

作者:Congge4202023.05.18 15:47浏览量:80

简介: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组件引起重建问题

text 描边,阴影性能问题

一个字符产生4个顶点,

如果再加上Shadow则相当于又把Text复制了一遍产生8个,

Outline则会将Text复制4遍产生20个顶点。