Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

利用NEO与Unity制作游戏 入门篇

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

) V" W+ i! R/ x, h2 y4 y1 z$ ]6 |    我会在Mac系统上操作,这其中会存在一些问题,我会(希望记得)在本教程加以介绍。对于Windows用户来说,这个过程应该会更简单直接一些,我会介绍一些现有的示例。到本教程结束时,你应该已经具备了足够的专业知识,而且可以避免我之前遇到过的那些陷阱,从而能够开始创建你自己的项目了。1 T9 r5 ?( x2 `2 E
! ~6 q7 j3 E$ h
    生存射击
4 i* \6 @, M5 Y5 k4 v! z9 w/ _4 _/ C% s0 s1 J! I/ s: y% F
    我们将利用Unity的生存射击(SurvivalShooter)教程和相关的示例项目进行讲解,因为对于初学者来说,这是非常好的得入门示例。你可以下载示例项目,然后添加额外的区块链内容,如果你想更深入地学习Unity,已经有很多很好的相关学习教程了。对于那些已经熟悉Unity的人,可以只关注这个示例。
9 d) U3 o% w- P& P& f2 B8 x9 i
/ I5 J3 B4 |& C& o    所以,到https://unity3d.com/上下载最新版本的编辑器。运行编辑器并创建一个新项目——我们将其称为SurvivalShooterTutorial。不用担心各种花哨的设置选项,因为之后我们会导入一个包,它会覆盖所有的这些设置。+ f) H, }0 w# @0 m5 S

9 j' T6 \2 Y( T' a, {    单击菜单选项窗口(Window)–>通用(General)–>资产存储(AssetStore)并搜索SurvivalShooterTutorial。选择它然后单击下载(Download),然后单击导入(Import)。4 S/ E0 P- e% `5 f8 R% o8 A( c' f
  q5 R. _  w  s4 l
    哇,你已经创建了一个游戏!在项目窗口(ProjectWindow)中打开主场景资产(Assets)->_Complete-Game–>_Complete-Game(scene),然后点击播放(Play)按钮以查看它的实际效果。你可以使用键盘上的WASD键移动并使用鼠标进行瞄准和射击。  b+ |6 R6 Y. x2 {
7 E( X% K* C4 @; D( F
    双击_Complete-Gamescene对象打开…0 a% v* R* b# j0 g

1 B* b% F% R6 D1 R! a; K4 }8 `然后点击“播放”按钮来测试( D, k: i- ?2 B- M
设置NEO
% H; k# S- N: c; ^# k5 h要开始使用NEO区块链,我们需要进行更多的设置。我们用于与NEO区块链交互的插件需要更新版本的微软.NET框架,而不是Unity中默认设置的版本。转到 编辑 (Edit)- >项目设置 (Project Settings)- >播放器 (Player),然后在 其他设置 (Other Settings)下将 脚本运行时版本(Scripting Runtime Version)设置为.NET 4.x Equivalent。 你会看到一个弹出窗口,要求重新启动编辑器,继续并接受从而重启。
1 C% K+ a. F6 J
2 C& e( X5 L- W  W; i然后获取City of Zion (CoZ) 团队提供的NEO Lux Unity插件,CoZ是一个独立的、国际化的开源开发者团队,致力于智能经济的开发,他们整合了一些奇妙的、易于使用的工具,用于与NEO区块链进行交互。下载完软件包后,只需双击它,就可以将其导入到现在打开着的Unity项目中。耶,我们的Unity初始设置就已经完成了。  v& S6 L4 O1 q8 ]& C
连接到NEO
0 K' f" {7 `0 x接下来,我们需要让我们的Unity应用程序与NEO区块链进行通信。在本教程中,我们会运行我们自己的私有服务器,因为根据我自己的经验,使用官方的测试网比运行自己的服务器困难得多(例如,需要填写申请测试GAS的表单)。
4 L8 H) ]7 E0 a右键单击 资产(Assets) – > 脚本(Scripts),然后选择 创建(Create) – > C#脚本( Script), 将其命名为CustomRPC,然后双击打开它,并复制+粘贴以下代码:
' |; t6 C6 ]- o1 J6 xusing Neo.Lux.Core;
- x* F$ o# H! H  A, d0 tusing Neo.Lux.Utils;) w+ F4 S4 D+ M# I. J& y
using UnityEngine;
& x. c' I0 U9 O+ s" R; g" V8 Z- w6 C
5 g) @, ?% B- K- y( H public class CustomRPC : NeoRPC
+ y& `6 a' }* u6 Y5 w$ | {0 G8 l1 V. [/ E' ~; y5 u$ A
     private string nodeURL;4 u0 w# h. i: d& A2 w3 Y

! R+ J# p( O" Y' ]     public CustomRPC(int port, int neoScanPort, string neoscanPortURL) : base(port, neoscanPortURL + ":" + neoScanPort.ToString())
9 Q3 ]  V/ {2 w! ~, N* s. z     {7 R( a& `5 W3 T( _$ Y' r/ n
         this.nodeURL = neoscanPortURL;: w, Z$ |8 M5 _- y* G7 h2 d& `
     }
! n& b  e! i, V+ J3 f( Y5 b3 N( v
& }8 T( x/ S" g0 X' H     protected override string GetRPCEndpoint()0 A, x7 j+ {2 Z3 k# z
     {+ Z8 ?6 k! n  J1 R6 Y- R- o
         return $"{nodeURL}:{port}";: n8 \" z; g& u3 [( @. D, z) ^
     }
' D/ X' f8 a8 S
* K5 _) n. [7 m6 p( `     public override byte[] GetStorage(string scriptHash, byte[] key)
& p5 ?+ J# i6 N8 d9 d     {' Q( \# W- B/ a% p8 J
         var response = QueryRPC("getstorage", new object[] { key.ByteToHex() });
! g! c' H9 [% Y. d* r         if (response == null)
2 T2 L9 p: o+ H         {
3 ~4 b& z' C, m  M* e5 ~             response = QueryRPC("getstorage", new object[] { scriptHash, key.ByteToHex() });0 e; y$ J1 d! ^
             if (response == null)- Q: J+ ]# N2 S
             {! D$ a  ^) O) F& g/ P% K
                 Debug.Log("Failed the QueryRPC");
: Q. V2 c; L' n/ I) p  [. y2 ~                 return null;6 t- a: S" \% K) ~
             }
: X/ ]1 ]$ o% M' p* `( n         }
1 G( M! }! Q7 c, \& _  [: f         var result = response.GetString("result");2 ?. h. U4 x- H, D
         if (string.IsNullOrEmpty(result))! i# n' [. n5 ~( `4 }
         {' a% W7 b6 ^1 `5 I
             return null;+ ?1 f: {! S1 g" X
         }
# R" F8 U4 \6 }- L" i         return result.HexToBytes();
7 v4 N- J& J% ], e: n* [( c' Y     }
4 L% i% s: H- \) K }5 q0 O# d- Z6 w( [4 I0 r
你不需要太担心这段代码有什么用。 这是一个简单的类,继承自NEO Lux的基类RPC。它可以让我们更轻松地使用我们自己的私有网络。 这就引出了第2部分:设置你的NEO私有网络。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

卡哇伊嘉人 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    11