欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity发布WebGL爬坑杂记(六)

程序员文章站 2022-03-17 12:57:32
...

   在这段时期的开发过程中有很多和web端进行混合开发的功能实现,如何调用web端的接口/函数,以及web端如何调用Unity的函数,在此记录一下,PS :web端开发使用的是js、

首先需要增加一个jslib,在unity特殊文件夹Plugins下新建一个jslib文件,内容如下:

var MyPlugins = {

	sendScore:function(str)
	{
	/*var returnStr = window.location.host;
		var buffer = _malloc(lengthBytesUTF8(returnStr)+1);
		writeStringToMemory(returnStr,buffer);
		return buffer;*/
		setUnityData(Pointer_stringify(str));

	}
};

mergeInto(LibraryManager.library,MyPlugins);

首先MyPlugins 是jslib文件的名称,自行定义,{  }里面的sendScore是标志着即将执行的C#函数,setUnityData是js中写的函数,也就是C#调用的 js 函数,Pointer_stringify(str)是固定写法,表示要传入一个参数,类型为str,mergeInto(LibraryManager.library,MyPlugins);也是固定写法,jslib编写就完成了

 [DllImport("__Internal")]
 public static extern string sendScore(string str);


 public void SendScoreFunc(string score){
        sendScore(score);
    }

这里就是C#做的操作了,使用 [DllImport("__Internal")] 与外部脚本交互,extern 是声明在外部实现的方法,所以需要用static修饰,到这里就OK了。

Over!