首先要选择打包成wegl的包,然后在Asset文件夹中新建一个Plugins的文件夹,在此文件夹中再新建一个.jslib的文件,(可以使用notepad++新建文件),然后打开jslib文件,在里面写上如下代码:
mergeInto(LibraryManager.library, {
}
这样写就相当于在unity中新建了一个c#的脚本。具体要实现的方法,需要在里面进行写代码。例如,我现在在里面新建一个有参函数:
这个函数的功能就是讲传入的参数通过alert弹窗显示出来
mergeInto(LibraryManager.library, {
HelloString: function (str) {
//这里使用Pointer_stringify方法转换unity传递过来的字符串
window.alert(Pointer_stringify(str));
} ,//如果是多个方法,要用逗号隔开。
}
然后回到unity的代码中,新建一个通讯的脚本:
using System.Runtime.InteropServices;
using UnityEngine;
public class callJSTest : MonoBehaviour {
[DllImport("__Internal")] //这个里面是2条下划线
private static extern void HelloString(string str);
void Start() {
HelloString("This is a string.");
}
}
然后开始打webgl的包,在webgl的index.html中写入你刚刚需要调用的代码:
window.HelloString= function(map) {
window.parent.postMessage(map)
}
这个位置写在<scripts></scripts>中。然后打开浏览器调试模式,可以看到传入的信息。
另外:webgl打包的时候,在playersetting中 compression format选择broli模式
与enable exceptions中选择none,这样打出来的包占用空间会小。但是第一次打包的时间会变的很漫长。
网友评论