一 Unity调用Js方法
1.弃用的方法
(1)在发布的WebGL项目的index.html添加Exit函数:
function Exit() { alert("UnityToWeb") }
(2)如果想在Unity中调用方法,添加代码:
Application.ExternalCall("Exit"); //调用Js的Exit方法
2.新方法
(1) 新建文件夹Plugins
(2) 文件夹新建.jslib文件,这里创建__Internal.jslib文件
添加代码
mergeInto(LibraryManager.library, { Hello: function () { window.alert("Hello, world!"); Exit(); //调用Js方法 }, });
(3)c#文件
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; /// <summary> /// Unity调用Js /// </summary> public class UnityToWeb : MonoBehaviour { //引入方法 [DllImport("__Internal")] private static extern void Hello(); void Start() { Hello(); //调用定义方法 } /// <summary> /// Unity调用JSExit方法 /// </summary> public void Exit() { // Application.ExternalCall("Exit"); } }
(4)在发布的WebGL项目的index.html添加Exit函数:
function Exit() { alert("UnityToWeb") }
二 Js调用Unity方法
1.在场景中新建空物体,命名WebWithUnity,然后在新建脚本WebToUnity。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class WebToUnity : MonoBehaviour { public Text text; public void JsToUnity(string a) { text.text = a; } }
2.这里,我们要在Js中调用JsToUnity这个函数,将项目打包后,修改index.html文件。`
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Unity WebGL Player | RoamWeb</title> <link rel="shortcut icon" href="TemplateData/favicon.ico"> <link rel="stylesheet" href="TemplateData/style.css"> <script src="TemplateData/UnityProgress.js"></script> <script src="Build/UnityLoader.js"></script> <script> var unityInstance = UnityLoader.instantiate("unityContainer", "Build/Web4.json", {onProgress: UnityProgress}); function Exit() { alert("UnityToWeb") } //Exit方法 function TestSend() { unityInstance.SendMessage("WebWithUnity", "JsToUnity","WebToUnity"); } //js调用Unity方法,WebWithUnity是调用方法脚本挂在的物体(第一阶层),JsToUnity是调用方法,WebToUnity是传递的参数。 </script> </head> <body> <div> <div id="unityContainer" style="width: 960px; height: 600px"></div> <div> <div></div> <div onclick="unityInstance.SetFullscreen(1)"></div> <div>RoamWeb</div> <button Type="button" onclick="TestSend()">WebToUnity</button> //测试按钮。 </div> </div> </body> </html>
发表评论 取消回复