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