在WebGL的程序中我们可能需要与网页上的其他元素进行通信,或者需要调用一些其他的Web API,本文介绍如何在Unity脚本中调用Java Script函数。
首先需要将Java Script函数源码封装在拓展名为.jslib的文件中,通过创建.txt文本,修改其拓展名,最终将文件放置在Unity Assets文件夹中的Plugins子文件夹下,jslib文件内容需要有如下语法:
代码语言:javascript复制var WebGLHelper =
{
Test: function()
{
console.log("TEST");
}
};
mergeInto(LibraryManager.library, WebGLHelper);
或者:
代码语言:javascript复制mergeInto(LibraryManager.library,
{
Test: function()
{
console.log("TEST");
}
});
示例函数中使用console.log函数在控制台打印一句日志,我们将其导入到Unity中Plugins文件夹中,再创建测试脚本,需要引入命名空间System.Runtime.InteropServices :
代码语言:javascript复制using UnityEngine;
using System.Runtime.InteropServices;
public class JslibTest : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void Test();
private void Start()
{
Test();
}
}
使用DllImport来引用外部方法,注意函数名需要与jslib文件中的函数名一致,在Start函数中调用该方法进行打包测试:
运行打包后的WebGL程序,F12打开控制台可见看到我们打印的日志内容。
以上是在Unity中调用Java Script函数的方法,如果需要在Java Script脚本中调用Unity中的脚本函数,可以参阅官方文档,地址:https://docs.unity3d.com/cn/current/Manual/webgl-interactingwithbrowserscripting.html