一文读懂如何将Unity Engine + MetaMask钱包连接起来

区块链研究实验室 閱讀 10879 2020-11-1 17:30
分享至
微信掃一掃,打開網頁後點擊屏幕右上角分享按鈕

Unity游戏自动连接Metamask钱包(或任何web3钱包)的操作。

一文读懂如何将Unity Engine + MetaMask钱包连接起来

在本文中,您将涉及到的内容:

1. 创建一个web3 WebGL模板

2. 更改web3模板的player设置

3. 将您的Unity游戏与MetaMask连接

4. 在游戏中显示MetaMask地址。

Web3 WebGL模板

创建新项目

一文读懂如何将Unity Engine + MetaMask钱包连接起来

在项目的“Assets”下,创建一个名为WebGLTemplates的文件夹。

接下来,下载现有的WebGL模板或使用下面的模板。有关更多信息,请参见《 Unity手册》。将模板移至WebGLTemplates

最终结果应该是:

一文读懂如何将Unity Engine + MetaMask钱包连接起来

有两个设置:

1、在Web3Template内部的index.html中,我们正在导入脚本

2、在TemplateData / web3Connect.js下,脚本为if (window.ethereum) { web3 = new Web3(window.ethereum); // connect popup ethereum.enable();} else { alert("Non-Ethereum browser detected. Please connect to a wallet");}简而言之,此模板说:加载网页后,连接到Web3钱包。更改player设置更改播放器设置在您的Unity项目中,File > Build Settings...Switch Platform到WebGL,完成后转到player设置...将WebGL模板更改为我们之前添加的Web3Template。要测试MetaMask连接,Build and Run应该有一个连接提示在游戏中显示地址现在它已经连接好了,让我们利用这些数据。这个例子将显示游戏中的web3钱包地址。Right Click > UI > Button选择Button并Add Component。创建一个新脚本。在此示例中,脚本称为GetWalletAddress.cs粘贴代码获取walletaddress.cs// GetWalletAddress.csusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;// use web3.jslibusing System.Runtime.InteropServices;public class GetWalletAddress : MonoBehaviour{ // text in the button public Text ButtonText; // use WalletAddress function from web3.jslib [DllImport("__Internal")] private static extern string WalletAddress(); public void OnClick() { // get wallet address and display it on the button ButtonText.text = WalletAddress(); }}创建另一个名为web3.jslib的文件。将代码粘贴到web3.jslib中。// web3.jslibmergeInto(LibraryManager.library, { WalletAddress: function () { // get address from metamask var returnStr = web3.currentProvider.selectedAddress; var bufferSize = lengthBytesUTF8(returnStr) + 1; var buffer = _malloc(bufferSize); stringToUTF8(returnStr, buffer, bufferSize); return buffer; },});现在代码已完成,将所有内容连接在一起。将Button对象拖到On Click()处理函数中,然后选择我们创建的OnClick()函数。将Text拖到“Button Text”脚本中。要进行验证,请再次构建并运行一次。单击按钮应显示一个地址这将为更复杂的交互(例如获取ERC-721数据以显示游戏内物品)奠定基础。---------------------------------------------原文作者:Leon Do译者:链三丰译文出处:http://bitoken.world---------------------------------------------描下放二维码添加我,拉您进入技术交流群" _ue_custom_node_="true">
btcfans公众号

微信掃描關注公眾號,及時掌握新動向

來源鏈接
免責聲明:
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
標籤: MetaMask Unity
上一篇:比特币上演狂暴大牛市,中心化交易所ok不ok? 下一篇:AMM的新一天:无常损失已被“解决”

相關資訊