在做Unity转换微信小程序的时候,由于微信小程序内使用的语言为js,Unity内使用的是C#,所以在一些场景中会有C#调用js的情况出现。
创建.jslib文件
创建文本文档或其他,文件名根据自己需要,将文件后缀名改为.jslib。
mylib.jslib文件内容为:
var MyLib = {
TestNormal: function (val) {
window.TEST.TestNormal(val);
},
TestString: function (str) {
window.TEST.TestString(Pointer_stringify(str));
},
TestReturn: function () {
return window.TEST.TestReturn();
}
};
mergeInto(LibraryManager.library, MyLib);
字符串需要使用Pointer_stringify()
进行转换,简单值类型可以直接传递。bool类型的值传递:true为1 false为0
一般js中的方法都挂在window对象下面,对应微信小游戏中的GameGlobal。TEST类似于命名空间的作用,可以不用。
对应微信小游戏端,test.js文件内容为:
const TEST = {
TestNormal(val) {
//TODO 注意:bool类型的值在此处 true为1 false为0
},
TestString(str) {
//TODO
},
TestReturn() {
retrun 1;
}
};
GameGlobal.TEST = TEST;
将jslib作为Plugins放在Unity中
C#端调用方式:
[DllImport("__Internal", EntryPoint = "TestNormal")]
private static extern void TestNormal(bool val);
[DllImport("__Internal", EntryPoint = "TestString")]
private static extern void TestString(string str);
[DllImport("__Internal", EntryPoint = "TestReturn")]
private static extern float TestReturn();
public void Test(bool val, string str)
{
TestNormal(val);
TestString(str);
float test = TestReturn();
}
以上就是C#调用js的方式。
标签:调用,TestReturn,val,C#,TestString,JS,TestNormal,TEST From: https://www.cnblogs.com/phopen/p/18023108