Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

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

卡哇伊嘉人
116 0 0
欢迎来到使用Unity游戏引擎制作的NEO区块链游戏的’A-Z’多系列讲解教程。我们将保证每个系列内容的简洁清晰,从而对整体的工作流程做出全面地演示说明。每个系列都与流程中的不同步骤相关联并会对相应流程做出处理,比如设置基本的游戏玩法,设置一个简单的测试服务器来连接Unity编辑器,设置编写NEO智能合约所需的开发环境,以及编写和测试简单的智能合约。某些内容我们会做出快速的讨论,有任何不清楚的地方,随时欢迎你发表评论,我很乐意为你解答。
- ~8 a% m) k  \' Q4 l, f
% G% z4 S. `* R8 y  X* v( I    我会在Mac系统上操作,这其中会存在一些问题,我会(希望记得)在本教程加以介绍。对于Windows用户来说,这个过程应该会更简单直接一些,我会介绍一些现有的示例。到本教程结束时,你应该已经具备了足够的专业知识,而且可以避免我之前遇到过的那些陷阱,从而能够开始创建你自己的项目了。! C! f) c  x  l1 I" T2 M9 q

2 u5 N2 V% u1 K    生存射击
9 a: O% o3 L8 C4 x" }; E0 ~7 l
- A& F! U( a) D; ]7 T8 J3 J6 l5 T/ e. b7 Z    我们将利用Unity的生存射击(SurvivalShooter)教程和相关的示例项目进行讲解,因为对于初学者来说,这是非常好的得入门示例。你可以下载示例项目,然后添加额外的区块链内容,如果你想更深入地学习Unity,已经有很多很好的相关学习教程了。对于那些已经熟悉Unity的人,可以只关注这个示例。( I9 ~* O3 Y5 G
0 I& ~! I1 W' c/ W
    所以,到https://unity3d.com/上下载最新版本的编辑器。运行编辑器并创建一个新项目——我们将其称为SurvivalShooterTutorial。不用担心各种花哨的设置选项,因为之后我们会导入一个包,它会覆盖所有的这些设置。( w/ A% u/ o" Z, |

# T1 k1 F4 x. t+ W4 o    单击菜单选项窗口(Window)–>通用(General)–>资产存储(AssetStore)并搜索SurvivalShooterTutorial。选择它然后单击下载(Download),然后单击导入(Import)。1 A5 s; g4 ^% r: U0 |$ T1 g4 D
# @8 n+ \' t) j6 a9 [; L# i2 K/ K
    哇,你已经创建了一个游戏!在项目窗口(ProjectWindow)中打开主场景资产(Assets)->_Complete-Game–>_Complete-Game(scene),然后点击播放(Play)按钮以查看它的实际效果。你可以使用键盘上的WASD键移动并使用鼠标进行瞄准和射击。& E( M8 U& e$ P: P9 ~9 X( _( T) K

6 p5 b' F% D0 t( z3 x. ]: Z    双击_Complete-Gamescene对象打开…: c( ^) E9 E  `) |! F: q% Y9 u
* B7 w8 x- M9 J; G/ [* h4 A& {/ h
然后点击“播放”按钮来测试
* O0 ]4 r) N' j6 b6 i" L- l设置NEO) x2 F. d2 a" C/ {
要开始使用NEO区块链,我们需要进行更多的设置。我们用于与NEO区块链交互的插件需要更新版本的微软.NET框架,而不是Unity中默认设置的版本。转到 编辑 (Edit)- >项目设置 (Project Settings)- >播放器 (Player),然后在 其他设置 (Other Settings)下将 脚本运行时版本(Scripting Runtime Version)设置为.NET 4.x Equivalent。 你会看到一个弹出窗口,要求重新启动编辑器,继续并接受从而重启。1 Y# |1 E  v2 O% }6 r5 P6 [# B

. b1 V7 p% |: [2 N4 B: r# V0 c然后获取City of Zion (CoZ) 团队提供的NEO Lux Unity插件,CoZ是一个独立的、国际化的开源开发者团队,致力于智能经济的开发,他们整合了一些奇妙的、易于使用的工具,用于与NEO区块链进行交互。下载完软件包后,只需双击它,就可以将其导入到现在打开着的Unity项目中。耶,我们的Unity初始设置就已经完成了。
8 i1 J+ Z: n% g8 I6 Z& Y连接到NEO
7 i" s- v2 e* u接下来,我们需要让我们的Unity应用程序与NEO区块链进行通信。在本教程中,我们会运行我们自己的私有服务器,因为根据我自己的经验,使用官方的测试网比运行自己的服务器困难得多(例如,需要填写申请测试GAS的表单)。
1 q- f' j) J! n7 G: ^3 o  u* Q右键单击 资产(Assets) – > 脚本(Scripts),然后选择 创建(Create) – > C#脚本( Script), 将其命名为CustomRPC,然后双击打开它,并复制+粘贴以下代码:
2 [) V: Y3 `  `using Neo.Lux.Core;
- [1 O/ ]% b3 F% Z% fusing Neo.Lux.Utils;
* [6 u/ L$ C! N- Gusing UnityEngine;
* G6 W. d- B. b# Y) f
1 b1 w( V  [' \2 k; X public class CustomRPC : NeoRPC! r  F( @) R9 }2 k9 ?- j/ k
{
1 ?2 J  d2 N  W; e3 g& o6 T     private string nodeURL;" T: Z) `' ^% A( ^
% j$ ?7 T, U8 _$ O: k; R4 j
     public CustomRPC(int port, int neoScanPort, string neoscanPortURL) : base(port, neoscanPortURL + ":" + neoScanPort.ToString())
# d6 A* y% }6 M* S! J" V     {' ]/ S: x* I9 E0 a8 _
         this.nodeURL = neoscanPortURL;
. S0 a8 o  j2 |     }( n- P( ^0 B& {8 d
1 o1 Y$ s+ X9 S+ t8 X
     protected override string GetRPCEndpoint()6 ]- ]8 P- e8 Q# S7 k5 \
     {
8 L' x; F1 y3 D! O( D2 A3 s: F- `         return $"{nodeURL}:{port}";
, H0 q; e% D0 ?. e     }2 r1 f/ u1 {& R+ K7 m' ?0 b

; H7 R7 ?( F' Q' f, P3 D     public override byte[] GetStorage(string scriptHash, byte[] key)
/ A8 t7 a" G  h     {$ V$ W' `! X4 F% |5 x9 Y
         var response = QueryRPC("getstorage", new object[] { key.ByteToHex() });
# u! u9 P8 j( Z# d         if (response == null)0 J3 q4 b! r4 f3 f1 P2 V
         {
9 i7 e8 F9 q' B             response = QueryRPC("getstorage", new object[] { scriptHash, key.ByteToHex() });- l) I. s- c  P; F; S9 `  |; A
             if (response == null)6 G' @/ }2 ?+ `$ ^8 p# ?! q
             {3 q- s& l, E4 Z* V) ~
                 Debug.Log("Failed the QueryRPC");
( J( X% o- _* c4 ]) c( q                 return null;, T) q2 o7 Q- \% I" F
             }
3 t# D6 r& d7 j         }5 l2 e" s& u2 Q( c( c' M
         var result = response.GetString("result");
% c1 Y" w4 }! O& A, b. M3 _         if (string.IsNullOrEmpty(result))
2 J$ |. I! N6 k9 l! B         {, S, I& T( ?6 I, y3 Q2 X5 r! M; T5 k
             return null;0 A3 J( F6 X; T9 J
         }
: `% E# N+ |" H4 q* d9 G6 b         return result.HexToBytes();
, F7 [0 k: ]& t     }# z3 N$ I; X$ ]+ x5 {2 }+ y
}% q$ I& w: W: P, A
你不需要太担心这段代码有什么用。 这是一个简单的类,继承自NEO Lux的基类RPC。它可以让我们更轻松地使用我们自己的私有网络。 这就引出了第2部分:设置你的NEO私有网络。
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

卡哇伊嘉人 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    11