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游戏系统开发成熟技术方案及源码详情
随着区块链技术的不断发展,智能合约农场在链游行业中扮演着越来越重要的角色。智能合约农场是一种基于区块链技术的应用程序,它可以帮助链游开发商快速、安全地上线定制游戏软件。本文将介绍智能合约农场在链游行业中的作用以及如何通过智能合约农场快速上线定制游戏软件。
|
12月前
|
存储 算法 区块链
DAPP合约公排系统开发案例|DAPP互助系统开发
去中心化就是指网络中各个节点的地位相等,传输内容和交易数据不再需要通过某个中心节点进行
|
存储 算法 安全
DAPP互助公排系统开发源码|DAPP互助系统开发方案与指南
“去中心化”是区块链的典型特征之一,其使用分布式储存与算力
|
安全 区块链
DAPP智能合约链游系统开发源码部署示例
  //SPDX-License-Identifier:MIT   pragma solidity^0.8.0;   contract Game{   //游戏合约的名称   string public name;   //游戏玩家的地址   mapping(address=&gt;bool)public players;   //玩家的分数
|
存储 负载均衡 前端开发
dapp区块链游戏开发功能版丨区块链游戏dapp链游系统开发技术方案/玩法规则/项目案例/源码程序
  区块链游戏系统开发是区块链技术在游戏领域的应用之一。通过区块链技术,游戏系统可以实现更加公平、透明、安全的游戏环境,同时提高游戏的运营效率和用户满意度。下面我们将详细介绍区块链游戏系统开发实现的技术和方案
|
存储 安全 区块链
IPPswap+NFTswap+OMNIswap智能合约项目系统开发方案项目及源码案例
  DApp是指基于区块练技术的去中心化应用程序,它的特点是去中心化、透明、安全、不可篡改等,DApp is an inevitable trend because it can solve problems such as centralization,data privacy,and security in traditional applications,while also achieving more fair,transparent,an
|
存储 人工智能 安全
Opsea NFT智能合约平台系统开发方案介绍/功能详解/源码说明/项目案例
  DAPP是去中心化应用程序(Decentralized Application),它是建立在区块练技术之上的应用程序,具有去中心化、开放性、透明性、安全性等特点,DAPP可以实现各种功能,例如数字货币钱包、去中心化交易所、去中心化社交网络等。O
摩顿Mortonn(DAPP)项目系统开发技术方案
摩顿Mortonn(DAPP)项目系统开发技术方案
DAPP钱包交易所系统开发技术详细/方案项目/案例详细/源码功能
Blockchain technology is generally used to build transaction systems, and it is necessary to ensure that the transaction information is authentic, traceable, and tamper proof. The information of each transaction is confirmed and stored in a block,。
|
区块链
链游开发丨3D链游系统开发(开发规则)丨DAPP链游系统开发(成熟及技术)丨源码
  区块链技术由此可以从多方面为企业赋能:提供可靠的共享数据,在各方之间建立信任;消除数据孤岛,即通过去中心化的,在一个网络中共享并支持获许可方访问的账本将数据集成到一个系统中;为数据赋予高度安全性