Version: Unity 6.0 (6000.0)
语言 : 中文
从 Unity C# 脚本调用 JavaScript 函数
从 Unity C# 脚本调用 C/C++/C# 函数

从 JavaScript 调用 Unity C# 脚本函数

您可能希望从 JavaScript 插件或浏览器代码中调用部分 Unity 代码。例如,您可能需要一个触发 Unity 行为并需要访问该方法的 JavaScript__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
See in Glossary
元素。

从浏览器的 JavaScript 向 Unity C# 脚本发送数据或通知的建议方法是使用 SendMessage 函数调用 Unity 项目中游戏对象上的方法。

使用 SendMessage helper 函数

使用 SendMessage 从 JavaScript 代码调用 Unity 脚本 API 的 Unity 方法。

对于可以传递的方法类型存在一些限制。只能调用游戏对象的方法,而不能调用附加到其他对象的常规 C# 方法。此外,仅当以下条件之一为 true 时,才使用 SendMessage 调用方法:

  • 该方法不接受任何参数。
  • 方法有一个参数,且该参数是单个字符串。
  • 方法有一个参数,且该参数是单个数字。

无法使用 SendMessage 调用具有多个参数或具有其他类型参数的方法。

SendMessage 代码示例

要从嵌入在项目中的 JavaScript 插件执行调用,可使用以下代码:

MyGameInstance.SendMessage(objectName, methodName, value);
  • objectName 是场景中对象的名称。
  • methodName 是脚本中方法的名称,当前附加到该对象。
  • value 可以是字符串、数字,也可以为空。

以下代码是另一个示例,显示了可以使用不同参数调用的每种类型的方法。

MyGameInstance.SendMessage('MyGameObject', 'MyFunction');
MyGameInstance.SendMessage('MyGameObject', 'MyFunction', 5);
MyGameInstance.SendMessage('MyGameObject', 'MyFunction', 'MyString');

要从嵌入页面的全局作用域执行调用,请参阅从全局作用域调用 JavaScript 函数

其他资源

从 Unity C# 脚本调用 JavaScript 函数
从 Unity C# 脚本调用 C/C++/C# 函数