文档

Unity Engine

Unity Engine

设置 JavaScript 插件

Create a JavaScript plug-in that your Unity project can interact with.
阅读时间3 分钟最后更新于 1 个月前

您可以在 Unity 项目中从 JavaScript 插件调用函数。Unity 支持两种 JavaScript 插件文件类型,均用于将 JavaScript 代码添加到 Unity 项目中:
  • .jslib
  • .jspre
注意:Unity 目前支持 .jslib 和 .jspre 文件中的 ECMAScript 5 (ES5) 语法。尚不支持 ES6 语法。
如果要改为从 C++ 插件调用函数,请参阅从 Unity C# 脚本调用 C/C++/C# 函数。

将 JavaScript 文件导入 Unity 项目

在项目中使用浏览器 JavaScript 的建议方法是将 JavaScript 源代码(.jspre 和 .jslib 文件)添加到项目中,然后直接使用 Unity C# 脚本代码中的这些功能或库。
将 JavaScript 插件文件放在任何文件夹中,例如
Assets/JSPlugins
。

从 .jslib 文件类型调用函数

您可以在 Unity C# 或原生脚本中从 .jslib 插件文件调用函数。
.jslib 文件类型使用
--js-library
Emscripten 模块。有关更多信息,请参阅关于 --js-library Emscripten 选项的 Emscripten 文档。
以下代码显示了 .jslib 插件文件的示例,其中包含定义部分函数(
Hello
和
HelloString
)的理想语法。
mergeInto(LibraryManager.library, { Hello: function () { window.alert("Hello, world!"); }, HelloString: function (str) { window.alert(UTF8ToString(str)); },});
然后,可以在 Unity C# 代码中调用以下函数:
using UnityEngine;using System.Runtime.InteropServices;public class NewBehaviourScript : MonoBehaviour { [DllImport("__Internal")] private static extern void Hello(); [DllImport("__Internal")] private static extern void HelloString(string str); void Start() { Hello(); HelloString("This is a string."); }}
有关 Unity C# 和 JavaScript 函数之间代码交互的完整示例,请参阅 代码示例:在 Unity 中调用 JavaScript 和 C/C++/C# 函数。
有关 Unity C# 和 JavaScript 之间交互的更多信息,请参阅从 Unity C# 脚本调用 JavaScript 函数。

包含文件类型为 .jspre 的 JavaScript 库

使用 .jspre 插件文件类型可在 JavaScript 代码中包含现有的 JavaScript 库。不能使用 Unity 代码与 .jspre 文件交互,但可以在 .jslib 代码中使用这些文件。
.jspre 文件类型使用
--pre-js
Emscripten 选项。有关更多信息,请参阅关于 --pre-js Emscripten 选项的 Emscripten 文档。
在构建过程中,Emscripten 会创建
*.framework.js
文件并将 .jspre 文件的内容复制到
*.framework.js
文件的开头。此过程很有用,因为所有代码都合并到一个文件中,因此更容易管理文件,并且代码受益于 Emscripten 优化。

其他资源