Unity發佈WebGL爬坑雜記(六)

   在這段時期的開發過程中有很多和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!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章