DAPP链游开发稳定版丨DAPP链游系统开发(流程及案例)丨DAPP链游源码详情

简介: Based on the traditional Internet,the metauniverse technology has put forward higher requirements in terms of immersion,participation,sustainability and other aspects,so it will be supported by many independent tools,platforms,infrastructure,protocols,etc.With the increasing maturity of AR,VR,5G,clo

  区块链是一种块链式数据结构,以时间先后为基准,将存储数据的区块以顺序相连的形式相结合,同时以密码学方式确保数据的不可篡改和不可伪造,是一种安全性极高的分布式账本。广义来讲,区块链利用块链式数据结构来对数据进行验证与存储、利用分布式节点共识算法对数据进行更新、利用密码学方式确保数据的传输与访问安全、利用自动化脚本编写的智能合约来对数据进行编程和操作,是一种全新的分布式架构基础与计算方式。

  Based on the traditional Internet,the metauniverse technology has put forward higher requirements in terms of immersion,participation,sustainability and other aspects,so it will be supported by many independent tools,platforms,infrastructure,protocols,etc.With the increasing maturity of AR,VR,5G,cloud computing and other technologies,the metauniverse is expected to gradually move from concept to reality.

  区块链的基本特性主要体现在5个方面:

  1)去中心化:以分布式网络为基础结构,对数据进行验证、记账、存储、维护和传输等操作,利用纯数学方法建立节点之间的交互信任关系,进而形成去中心化、可信任的分布式系统;

  2)时序数据:块链式数据结构携带时间戳,为数据添加时间维度,使得数据能够验证与追溯;

  3)集体维护:区块链系统使用特有的激励机制以保证系统中所有节点均愿意参与区块的验证,在此过程中采用共识算法选择特定节点,为区块链添加新的区块;

  4)可编程:区块链技术提供灵活自由的脚本系统,可以支持用户创建多种形式的去中心化应用;

  5)安全可信:以非对称密码学原理为理论基础,对数据进行单向加密,从而确保了数据的安全性;

  Prefab的生成

  先贴上代码:

  PrefabUtility.CreatePrefab(prefabFullPath,CREATE_OBJ));

  prefabFullPath的格式为保存的路径+想要保存的名字+.prefab后缀名

  例如:application.datapath+testobj+.prefab

  CREATE_OBJ为你想要保存为预制体的游戏物体类

  GameObject selectedGameObject=Selection.activeGameObject;

  可以通过Selection方法获得Hierarchy窗口中选中的物体,

  也可以通过外部传,总之这个就是你要制作成预制体的游戏物体

  CreatePrefab方法返回的是一个游戏物体类

  UnityPackage的导出

  还是先贴代码:

  string exprotPath=EditorUtility.SaveFilePanel("导出包路径","","","unitypackage");

  var AssetPathName=AssetDatabase.GetDependencies(assetPath);

  AssetDatabase.ExportPackage(AssetPathName,exprotPath+"bao.unitypackage",ExportPackageOptions.IncludeDependencies|ExportPackageOptions.Default);

  exprotPath为想要导出的路径,此处用Unity的SaveFilePanel类,第一个string为窗口标题,第二个string为默认打开的目录,第三个string为默认文件名(在打开窗口中可以随意填写),第四个string为后缀名,拓展名,此处我们填写unitypackage

  AssetPathName为一个string数组,值是想要打包的资源的路径(从Assets/开始算,即只记录工程目录即可)

  如果你无法确定自己想要导出的资源在工程Assets目录下哪个位置,可以通过

  var AssetPathName=new string[Selection.objects.Length];

  for(int i=0;i<AssetPathName.Length;i++)

  {

  AssetPathName<i>=AssetDatabase.GetAssetPath(Selection.objects<i>);

  }

  Selection.objects就是你在Project视窗中选择的物体物体数组,然后再通过GetAssetPath方法获取到这个资源的在工程中的路径

  GetAssetPath方法也可以用来获取刚刚我们创建预制体的路径

  string AssetPath=AssetDatabase.GetAssetPath(PrefabUtility.SaveAsPrefabAsset(CREATE_OBJ,prefabFullPath));

  这里用了新的保存预制体的方法SaveAsPrefabAssets,CreatePrefab方法在新的版本中会被弃用,这个方法的构造参数和CreatePrefab方法相反,需要生成预制体的物体在前面,路径在后面

  当我们获取到这个AssetsPath之后,还需要通过AssetDatabase.GetDependencies(assetPath)方法来获取这个资源的引用关系,才能打包出一个完整的包,这里可以传string数组(获取多个物体的引用),也可以单独传一个string(获取一个物体的引用),返回的都是一个string数组,有了这个引用的数组,我们就可以导出包了

  AssetDatabase.ExportPackage(AssetPathName,exprotPath,ExportPackageOptions.IncludeDependencies);

  第一个值就是需要被导出的资源的路径,如果没有获取到引用,你导出的也只是一个Prefab的依赖表,不包含任何模型资源,图片,材质等资源的,第二个值就是导出路径+名字,刚刚我们已经尬通过SaveFilePanel获取到了,这里直接用就行了,第三个值是导出的模式,一共有四种模式,大家可以详细自己看一下,IncludeDependencies这个模式就是包含了引用关系的(即使你没有获取引用,也会自动去查找引用再导出)

  u3d里动态创建对象,需要使用prefab

  而创建的时候MonoBehaviour.Instantiate(GameObject orignal)需要一个作为原型的对象。

  本文提供三种方式获得prefab对象。

  方式一:使用脚本的public字段

  直接在Project视图里找到做好的prefab,将其拖拽到指定脚本的指定public GameObject字段。

  方式二:Resource类

  1、在Assets目录下的任意位置创建一个名为resources的文件夹,将做好的prefab放到这个文件夹下,path形式如下:

  Assets....resourcesprefabName.prefab

  2、在代码里使用Resource.Load或LoadAll函数,获得原型对象。

  指定prefab时不需要指定扩展名(.prefab),形式如下:

  GameObject prototype=Resource.Load("prefabName")as GameObject;

  可以有任意数量的resources文件夹,怀疑是Resource类初始化的时候会搜集所有resources文件夹里的文件名。

  方式三:加载到场景

  一般我们制作Perfab的时候,都是在Hierarchy视图里创建GameObject,然后再搭建Prefab。

  事后根据需要删除这个原始的GameObject。

  因此我们可以保留这个GameObject,然后在场景加载后Find这个对象(代码方式),或者使用脚本public字段(编辑器方式)。

相关文章
|
区块链 测试技术
DAPP链游开发稳定版丨链游dapp/nft游戏系统开发成熟技术方案及源码详情
随着区块链技术的不断发展,智能合约农场在链游行业中扮演着越来越重要的角色。智能合约农场是一种基于区块链技术的应用程序,它可以帮助链游开发商快速、安全地上线定制游戏软件。本文将介绍智能合约农场在链游行业中的作用以及如何通过智能合约农场快速上线定制游戏软件。
|
存储 算法 区块链
DAPP公排互助质押项目系统开发指南与方案
去中心化。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中央控制。除了自成一体的区块链本身,各个节点通过分布式的计费和存储实现信息的自校验、传输和管理
|
区块链 数据安全/隐私保护
DAPP众筹互助系统开发|DAPP公排合约系统开发指南
去中心化区块链作为分布式技术的一种创新形式,提供了一种去中心化、透明和可信的数据处理方式
|
供应链 安全 区块链
DAPP矩阵公排合约互助系统开发模式|DAPP互助系统开发指南
智能合约的工作原理基于区块链的去中心化特性
|
区块链
dapp互助公排智能合约系统开发指南与规则
智能合约作为区块链技术应用最广泛的场景之一
|
存储 测试技术 区块链
元宇宙游戏链游系统开发(稳定版)丨nft/dapp游戏链游系统开发详情规则及源码案例
  元宇宙链游戏(Metaverse blockchain game)是基于区块链技术和元宇宙概念开发的一类游戏。
|
安全 区块链
DAPP智能合约链游系统开发源码部署示例
  //SPDX-License-Identifier:MIT   pragma solidity^0.8.0;   contract Game{   //游戏合约的名称   string public name;   //游戏玩家的地址   mapping(address=&gt;bool)public players;   //玩家的分数
|
存储 区块链 文件存储
DAPP众筹互助公排系统开发(详情功能)DAPP互助模式开发
区块就是很多交易数据的集合,它被标记上时间戳和之前一个区块的独特标记
|
算法 区块链 数据库
DEFI/DAPP智能合约项目系统开发案例|(成熟方案)
区块链是由一串串区块相互连接而成params=request.getHeaderNames();
|
存储 算法 区块链
链游项目系统开发(方案设计)丨DAPP链游系统开发(案例分析)/成熟技术/区块链游戏开发/源码说明
  在区块链中,每个块包含了一定数量的交易信息和该块的唯一标识符,同时还包含了前一个块的哈希值。这样的设计保证了区块之间的顺序和完整性,一旦一个块被添加到区块链中,它就不可更改。This makes blockchain a secure and trustworthy distributed ledger that can be used to record and verify various types of transactions.