如何从外部React脚本调用Unity C#类方法?问题已解决
解决WebGL环境下从JS调用Unity脚本函数的SendMessage找不到问题
很多刚上手Unity+C#做WebGL项目的开发者都会碰到这个坑:按照Unity官方WebGL文档里《与浏览器脚本交互 - 从JavaScript调用Unity脚本函数》的说明,我们需要用SendMessage(objectName, methodName, value)来实现浏览器JS向Unity脚本发消息,但找遍window对象都看不到这个方法,而Unity内部GameObject自带的SendMessage又只能在Unity代码里用,外部JS根本调用不了。
其实解决方法很简单:
- 供外部JS调用的
SendMessage方法,是挂载在WebGL构建生成的gameInstance对象上的,你需要通过window.gameInstance来访问它 - 给你个实际调用的例子:
// 调用Unity场景中名为"Player"的GameObject上的"UpdateScore"方法,传入数值200 window.gameInstance.SendMessage("Player", "UpdateScore", 200);
这样就能顺利从浏览器端触发Unity脚本里的目标函数啦。
内容的提问来源于stack exchange,提问作者Kyle Richardson




