Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

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

卡哇伊嘉人
85 0 0
欢迎来到使用Unity游戏引擎制作的NEO区块链游戏的’A-Z’多系列讲解教程。我们将保证每个系列内容的简洁清晰,从而对整体的工作流程做出全面地演示说明。每个系列都与流程中的不同步骤相关联并会对相应流程做出处理,比如设置基本的游戏玩法,设置一个简单的测试服务器来连接Unity编辑器,设置编写NEO智能合约所需的开发环境,以及编写和测试简单的智能合约。某些内容我们会做出快速的讨论,有任何不清楚的地方,随时欢迎你发表评论,我很乐意为你解答。
- A! u: ?0 W+ r: V! `8 V  h& Y, o. j; e0 d7 L# ]
    我会在Mac系统上操作,这其中会存在一些问题,我会(希望记得)在本教程加以介绍。对于Windows用户来说,这个过程应该会更简单直接一些,我会介绍一些现有的示例。到本教程结束时,你应该已经具备了足够的专业知识,而且可以避免我之前遇到过的那些陷阱,从而能够开始创建你自己的项目了。$ `6 J  V) r5 O4 i7 W* z
  q5 t# L3 h- G  C( \9 k! O7 ^  E& i
    生存射击
/ X3 D9 v/ ~# \  Q3 h* X4 E$ J
' ]/ a' z  |8 l  S; M    我们将利用Unity的生存射击(SurvivalShooter)教程和相关的示例项目进行讲解,因为对于初学者来说,这是非常好的得入门示例。你可以下载示例项目,然后添加额外的区块链内容,如果你想更深入地学习Unity,已经有很多很好的相关学习教程了。对于那些已经熟悉Unity的人,可以只关注这个示例。
# x+ }# c3 C4 W! L2 g. S8 K( d
; `" ]% r6 Z1 o    所以,到https://unity3d.com/上下载最新版本的编辑器。运行编辑器并创建一个新项目——我们将其称为SurvivalShooterTutorial。不用担心各种花哨的设置选项,因为之后我们会导入一个包,它会覆盖所有的这些设置。
" E5 z* E3 Z6 X9 i/ ?/ `( e) {& B5 _* I$ a4 p2 I6 L. R5 ~
    单击菜单选项窗口(Window)–>通用(General)–>资产存储(AssetStore)并搜索SurvivalShooterTutorial。选择它然后单击下载(Download),然后单击导入(Import)。
& u  x2 G( {8 x* i! m5 a/ H; j
/ _; v1 U/ _9 M    哇,你已经创建了一个游戏!在项目窗口(ProjectWindow)中打开主场景资产(Assets)->_Complete-Game–>_Complete-Game(scene),然后点击播放(Play)按钮以查看它的实际效果。你可以使用键盘上的WASD键移动并使用鼠标进行瞄准和射击。
, ~9 s$ }7 q) c! o" c- P6 D* b& v
5 L6 H' N8 g+ m: I# ]6 q6 A    双击_Complete-Gamescene对象打开…
" s/ h) N: _; N+ i
$ A% R7 z. j9 }" s3 z  c然后点击“播放”按钮来测试* M6 M( t( A; {* z5 K
设置NEO% Y7 Y' g/ G# h" {4 h" M
要开始使用NEO区块链,我们需要进行更多的设置。我们用于与NEO区块链交互的插件需要更新版本的微软.NET框架,而不是Unity中默认设置的版本。转到 编辑 (Edit)- >项目设置 (Project Settings)- >播放器 (Player),然后在 其他设置 (Other Settings)下将 脚本运行时版本(Scripting Runtime Version)设置为.NET 4.x Equivalent。 你会看到一个弹出窗口,要求重新启动编辑器,继续并接受从而重启。' G  Q; B3 y7 d. J! {

3 B- L+ I3 i* D" }8 J1 q然后获取City of Zion (CoZ) 团队提供的NEO Lux Unity插件,CoZ是一个独立的、国际化的开源开发者团队,致力于智能经济的开发,他们整合了一些奇妙的、易于使用的工具,用于与NEO区块链进行交互。下载完软件包后,只需双击它,就可以将其导入到现在打开着的Unity项目中。耶,我们的Unity初始设置就已经完成了。
' E: s$ t& |9 }, r  N5 b连接到NEO
' \$ J. S& d) e8 E8 W' D- H& u' J接下来,我们需要让我们的Unity应用程序与NEO区块链进行通信。在本教程中,我们会运行我们自己的私有服务器,因为根据我自己的经验,使用官方的测试网比运行自己的服务器困难得多(例如,需要填写申请测试GAS的表单)。: A  P- I' E) A6 h) q
右键单击 资产(Assets) – > 脚本(Scripts),然后选择 创建(Create) – > C#脚本( Script), 将其命名为CustomRPC,然后双击打开它,并复制+粘贴以下代码:
/ M2 b; W& N8 S, U* o2 _0 W# U3 w8 Z; Pusing Neo.Lux.Core;
. c- I8 ~* L5 g$ k$ A9 vusing Neo.Lux.Utils;
+ U( L& _' S& ~5 S% pusing UnityEngine;
! c- V  v- A* y7 [
, M' {0 }& V" Z! \6 g  ]5 n; h public class CustomRPC : NeoRPC
% r! n& i8 G  V0 `4 q- f* v {% o& n' |+ P0 s- X( h
     private string nodeURL;
4 p  j  i; K' k& t
0 R" G1 V8 ?4 r     public CustomRPC(int port, int neoScanPort, string neoscanPortURL) : base(port, neoscanPortURL + ":" + neoScanPort.ToString())6 u6 h* c3 o8 \
     {
. ^! _7 H% E; p/ C8 f         this.nodeURL = neoscanPortURL;
4 ~5 m$ [' F0 y* F) `     }) `' E# X# R* A

5 S' Z+ c; S' w/ S+ i4 q     protected override string GetRPCEndpoint()
6 b3 q% E' z+ I, A# Q4 ^5 e     {
; J1 f6 e5 b1 p0 Z; R% |; G, G# t         return $"{nodeURL}:{port}";
. v: g6 _8 [6 m+ I: p9 Q$ {: g     }
. z4 S3 V& s* @
4 ?# _4 m. z; p6 |) S: m  I     public override byte[] GetStorage(string scriptHash, byte[] key)5 S5 }( {6 f8 K% U
     {
: k% \, {$ w! y) M" t, v: I; R+ J$ K         var response = QueryRPC("getstorage", new object[] { key.ByteToHex() });0 D3 c& `/ `. b' H
         if (response == null)2 N! d9 w  i1 V
         {) U9 P+ [3 T, p1 J9 f. Q- L
             response = QueryRPC("getstorage", new object[] { scriptHash, key.ByteToHex() });9 l2 W) N4 [; S4 i- t
             if (response == null)9 V8 Q. d% C; X9 t- I& ^0 O; o
             {
% ^0 T2 ^: q' i% `                 Debug.Log("Failed the QueryRPC");6 s) Z6 B- o* Z+ c
                 return null;& ?* b- O1 S+ A1 V6 i. W
             }
7 Z/ e4 d" j# r( a         }% B- A9 m$ C3 ?3 u; j7 L
         var result = response.GetString("result");6 C5 A. L' N( A. W
         if (string.IsNullOrEmpty(result)), `& S1 l* c8 c( V
         {
1 Z+ Q  T- j5 X  R% Y% }& O             return null;
% q  g, I% g3 v! H" h. C5 i) l         }
$ N0 ]- X8 }+ e5 a; B0 t         return result.HexToBytes();
+ ~- k$ W; ^& o) [; ~     }9 T1 T5 f* ]* X! v
}
4 j* D! ?) ^/ V+ }! m- E你不需要太担心这段代码有什么用。 这是一个简单的类,继承自NEO Lux的基类RPC。它可以让我们更轻松地使用我们自己的私有网络。 这就引出了第2部分:设置你的NEO私有网络。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

卡哇伊嘉人 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    11