博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用NEO与Unity制作游戏(第1部分)
阅读量:7038 次
发布时间:2019-06-28

本文共 2805 字,大约阅读时间需要 9 分钟。

hot3.png

欢迎来到使用Unity游戏引擎制作的NEO区块链游戏的’A-Z’多系列讲解教程。我们将保证每个系列内容的简洁清晰,从而对整体的工作流程做出全面地演示说明。 每个系列都与流程中的不同步骤相关联并会对相应流程做出处理,比如设置基本的游戏玩法,设置一个简单的测试服务器来连接Unity编辑器,设置编写NEO智能合约所需的开发环境,以及编写和测试简单的智能合约。某些内容我们会做出快速的讨论,有任何不清楚的地方,随时欢迎你发表评论,我很乐意为你解答。

我会在Mac系统上操作,这其中会存在一些问题,我会(希望记得)在本教程加以介绍。 对于Windows用户来说,这个过程应该会更简单直接一些,我会介绍一些现有的示例。 到本教程结束时,你应该已经具备了足够的专业知识,而且可以避免我之前遇到过的那些陷阱,从而能够开始创建你自己的项目了。

生存射击                                  

我们将利用教程和相关的示例项目进行讲解,因为对于初学者来说,这是非常好的得入门示例。 你可以下载示例项目,然后添加额外的区块链内容,如果你想更深入地学习Unity,已经有很多很好的相关学习教程了。对于那些已经熟悉Unity的人,可以只关注这个示例。

所以,到上下载最新版本的编辑器。运行编辑器并创建一个新项目——我们将其称为SurvivalShooterTutorial。不用担心各种花哨的设置选项,因为之后我们会导入一个包,它会覆盖所有的这些设置。

单击菜单选项 窗口(Window) – > 通用 (General) – > 资产存储 (Asset Store)并搜索Survival Shooter Tutorial。 选择它然后单击下载 (Download),然后单击导入(Import)。

 

哇,你已经创建了一个游戏! 在项目窗口(Project Window)中打开主场景 资产(Assets)- > _Complete-Game – > _Complete-Game(scene),然后点击 播放(Play) 按钮以查看它的实际效果。 你可以使用键盘上的WASD键移动并使用鼠标进行瞄准和射击。

双击_Complete-Game scene对象打开…

然后点击“播放”按钮来测试

设置NEO

要开始使用NEO区块链,我们需要进行更多的设置。我们用于与NEO区块链交互的插件需要更新版本的微软.NET框架,而不是Unity中默认设置的版本。转到 编辑 (Edit)- >项目设置 (Project Settings)- >播放器 (Player),然后在 其他设置 (Other Settings)下将 脚本运行时版本(Scripting Runtime Version)设置为.NET 4.x Equivalent。 你会看到一个弹出窗口,要求重新启动编辑器,继续并接受从而重启。

 

然后获取City of Zion (CoZ) 团队提供的,CoZ是一个独立的、国际化的开源开发者团队,致力于智能经济的开发,他们整合了一些奇妙的、易于使用的工具,用于与NEO区块链进行交互。下载完软件包后,只需双击它,就可以将其导入到现在打开着的Unity项目中。耶,我们的Unity初始设置就已经完成了。

连接到NEO

接下来,我们需要让我们的Unity应用程序与NEO区块链进行通信。在本教程中,我们会运行我们自己的私有服务器,因为根据我自己的经验,使用官方的测试网比运行自己的服务器困难得多(例如,需要填写申请测试GAS的表单)。

右键单击 资产(Assets) – > 脚本(Scripts),然后选择 创建(Create) – > C#脚本( Script), 将其命名为CustomRPC,然后双击打开它,并复制+粘贴以下代码:

using Neo.Lux.Core;using Neo.Lux.Utils;using UnityEngine;  public class CustomRPC : NeoRPC {     private string nodeURL;      public CustomRPC(int port, int neoScanPort, string neoscanPortURL) : base(port, neoscanPortURL + ":" + neoScanPort.ToString())     {         this.nodeURL = neoscanPortURL;     }      protected override string GetRPCEndpoint()     {         return $"{nodeURL}:{port}";     }      public override byte[] GetStorage(string scriptHash, byte[] key)     {         var response = QueryRPC("getstorage", new object[] { key.ByteToHex() });         if (response == null)         {             response = QueryRPC("getstorage", new object[] { scriptHash, key.ByteToHex() });             if (response == null)             {                 Debug.Log("Failed the QueryRPC");                 return null;             }         }         var result = response.GetString("result");         if (string.IsNullOrEmpty(result))         {             return null;         }         return result.HexToBytes();     } }

你不需要太担心这段代码有什么用。 这是一个简单的类,继承自NEO Lux的基类RPC。它可以让我们更轻松地使用我们自己的私有网络。 这就引出了。

原文链接:

翻译:包子

                                                   

NEOFANS:neofans.org

NEOFANS 微博:https://www.weibo.com/neofanscommunity

NEOFANS  telegram群:https://t.me/NEOfansCN

转载于:https://my.oschina.net/u/4005186/blog/2907411

你可能感兴趣的文章
bzoj3654 图样图森破
查看>>
POJ 3233 Matrix Power Series (矩阵分块,递推)
查看>>
5.对静态资源映射的规则
查看>>
jQuery中animate()方法以及$('body').animate({"scrollTop":top})不被Firefox支持问题的解决
查看>>
day31 作业试题讲解
查看>>
四则运算一
查看>>
[转载] 中华典故故事(孙刚)——14 明镜高悬
查看>>
CSS--border小三角[兼容IE6的边框透明效果]
查看>>
用Javascript获取页面元素的位置
查看>>
ORACLE11g R2【RAC+ASM→单实例FS】
查看>>
消防喷头的原理
查看>>
一点扯淡的随笔
查看>>
Linux常用快捷键以及如何查看命令帮助
查看>>
electron 学习笔记
查看>>
vs 开发 qt 遇到 无法找到 Visual Studio 2010 的生成工具(平台工具集 =“v100”) 解决方案...
查看>>
Oracle死锁处理实例
查看>>
[转]Android Studio创建Xposed模块项目时BridgeApi的正确添加方式
查看>>
【hive】——Hive sql语法详解
查看>>
python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)...
查看>>
一篇网络流的好blog
查看>>