C#调用JS实现
在做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的方式。
标签:
JavaScript
, Unity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)