从 JavaScript 调用 Unity 脚本函数
有时你需要向Unity发送一些数据或通知
来自浏览器 JavaScript 的脚本。推荐的做法
是调用方法GameObject
包含在您的内容中。如果你正在制作
来自嵌入在您的项目中的 JavaScript 插件的调用,您可以
使用以下代码:
SendMessage(objectName, methodName, value);
Where objectName
是场景中对象的名称;methodName
是
脚本中当前附加到该对象的方法的名称;
value 可以是字符串、数字,也可以为空。例如:
SendMessage('MyGameObject', 'MyFunction');
SendMessage('MyGameObject', 'MyFunction', 5);
SendMessage('MyGameObject', 'MyFunction', 'MyString');
如果您想从全球范围内拨打电话
嵌入页面,请参阅下面的代码可见性部分。
代码可见性
从 Unity 5.6 开始,所有构建代码都在自己的环境中执行
范围。这种方法可以将您的游戏嵌入到
任意页面,不会与嵌入页面代码发生冲突,
以及可以在同一个构建上嵌入多个构建
页。
如果您的所有 JavaScript 代码都是 .jslib 插件的形式
在你的项目中,那么这段 JavaScript 代码将在
与已编译的构建范围相同,您的代码应该可以正常工作
与以前版本的 Unity 相同(例如,
以下对象和函数应该可以直接从
JavaScript 插件代码:Module、SendMessage、HEAP8、ccall 等)。
但是,如果您打算调用内部 JavaScript 函数
从嵌入页面的全局范围来看,您应该始终假设
页面上嵌入了多个版本,因此您应该
明确指定您要引用的构建。例如,如果
您的游戏已实例化为:
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/build.json", {onProgress: UnityProgress});
然后您可以使用以下命令向构建发送消息
gameInstance.SendMessage(),或使用以下方式访问构建模块对象
游戏实例.模块。