网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

一 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>


评论 0

暂无评论
0
0
0
立即
投稿
发表
评论
返回
顶部