Unity WebGL與瀏覽器腳本交互

Unity發佈成WebGL之後,可以與瀏覽器腳本進行交互,

官方說明鏈接:https://connect.unity.com/doc/Manual/webgl-interactingwithbrowserscripting

 

瀏覽器腳本調用Unity方法

在瀏覽器腳本中,支持調用Unity的方法,提供了和Unity中一樣的SendMessage方法。

SendMessage(腳本所在遊戲對象, 要調用的方法, 參數);

在瀏覽器腳本中,直接調用即可。

 

  <script>
    var gameInstance = UnityLoader.instantiate("gameContainer", "Build/ShimaRinWeb.json", { onProgress: UnityProgress });

    function SendToUnity() {
      var info = document.getElementById("SendText");
      gameInstance.SendMessage('GameMaster', 'GetFromHtml', info.value);
    }
  </script>

 

Unity調用瀏覽器腳本方法

之前Unity提供的Application.ExternalCall方法現在已經被設爲過時。

現在需要用到的方法是在Plugins目錄下添加“*.jslib”文件,將瀏覽器腳本寫在裏面。

腳本格式如下。需要注意的是,Unity發送過去的信息需要經過轉換才行。

mergeInto(LibraryManager.library, {
  GetFromUnity: function (info) {
    document.getElementById("ShowInfo").value=UTF8ToString(info);
  },
});

在Unity中用“DllImport”註解引入方法即可

[DllImport("__Internal")]
private static extern void GetFromUnity(string info);

public void SendToHtml()
{
    GetFromUnity(inputField.text);
}

 

其他注意內容

Unity發佈的WebGL會將鍵盤輸入截取,導致只能在Unity生成的畫布中輸入,無法在瀏覽器其他地方進行輸入。

Unity提供了“WebGLInput.captureAllKeyboardInput”屬性,當該屬性爲“false”的時候,即可在瀏覽器其他地方輸入,默認值爲“true”。

 

這裏做了個Demo,地址如下,訪問速度略慢,見諒。

http://www.nshworkshop.cn/unityweb/

發佈了164 篇原創文章 · 獲贊 152 · 訪問量 96萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章