Version: 6000.3
语言: 中文
代码示例:在 Unity 中调用 JavaScript 和 C/C++/C# 函数
自定义错误处理

设置 JavaScript 插件

您可以在 Unity 项目中从 JavaScript 插件调用函数。Unity 支持两个 JavaScript插件在 Unity 外部创建的一组代码,用于在 Unity 中创建功能。可以在 Unity 中使用两种插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和本机插件(特定于平台的本机代码库)。更多信息
请参阅术语表
允许您将 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-libraryEmscripten 模块。有关更多信息,请参阅有关 –js-library Emscripten 选项的 Emscripten 文档

以下代码显示了 .jslib 插件文件的示例,其理想语法定义了某些函数 (HelloHelloString).

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-jsEmscripten 选项。有关更多信息,请参阅有关 –pre-js Emscripten 选项的 Emscripten 文档。

在构建过程中,Emscripten 创建了*.framework.js文件并将 .jspre 文件的内容复制到*.framework.js文件。这个过程很有用,因为所有代码都合并到一个文件中,因此更容易管理文件,并且代码受益于 Emscripten 优化。

其他资源

代码示例:在 Unity 中调用 JavaScript 和 C/C++/C# 函数
自定义错误处理