[英]Unity3D - WebGL returning a variable from a web3 call into unity from js
我正面临一个问题,我有点羞耻地发布了一些看起来很菜的东西 :D
上下文:我正在用 Unity 为 WebGL 做一个小项目,我正在努力从函数返回一个变量。
我在 Unity 中运行那个简单的脚本来调用我在 .jslib 文件中的函数。
[DllImport("__Internal")] private static extern string GetBalance(string s);
public void Start() {
string s = WalletAddress();
ButtonText.text = GetTokenBal(s);
}
这就是我正在调用的函数,我想因为这种乐趣而返回 Balance。
最终我可以通过浏览器控制台.log 该功能,但我没有得到任何恢复统一。 很可能是因为这个变量需要一段时间才能使用,所以我想回到 Start() 这不是一个正确的方法。 我猜
web3 = new Web3(new Web3.providers.HttpProvider("xxxx"));
GetBalance: function (str) {
var addr = (Pointer_stringify(str));
var contractAddr = ('xxxx');
var tknAddress = (addr).substring(2);
var balance = 0;
var contractData = ('0x70a08231000000000000000000000000' + tknAddress);
web3.eth.call({
to: contractAddr,
data: contractData
}, function(err, result) {
if (result) {
var tokens = web3.utils.toBN(result).toString();
console.log('Tokens Owned: ' + web3.utils.fromWei(tokens, 'kwei'));
balance = web3.utils.fromWei(tokens, 'kwei');
} else {
console.log(err);
}
});
return balance;
}
很抱歉问一个简单的问题,但我正在学习,所以我想念拼图的一部分。
如果这个变量当时可用,我可以使用 console.log 登录浏览器。 我如何将它发送回 unity 以更新那里的变量? 谢谢你的耐心:)
已解决:将这些知识留给其他人:
我在我的c#
脚本中创建了一个新函数:
public void MyFunction(string s) {
ButtonText.text = s;
}
然后,我将.jslib
的函数更改为发送避免返回,而是直接将值转发到统一实例:
unityInstance.SendMessage('Text_Balance', 'MyFunction', "Variable I want to pass as argument in MyFunction");
如何将 web3 库导入到您的项目中?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.