前文说的是在unity中去调用js脚本的函数。本文说另一个方式,就是从web前端,使用js去调用unity中的函数。
方案如下:
1.在Unity场景中有一个GameObject,我们命名为A, A上有C#脚本,里面有个方法
public void Func(string str)
{
//处理逻辑
}
2.在发布出的WebGL项目index.html中用JS调用此方法
<script>
var gameInstance = UnityLoader.Instantiate("gameContainer", "Build/WebAndUnity.json",{onProgress:UnityProgress});
function testSend()
{
gameInstance.SendMessage("A", "Func", "string");
}
</script>
需要注意的就是gameInstance,先要初始化出一个gameInstance,如上代码,再用gameInstance调用SendMessage方法。
这段代码的大概意思就是:web前端通过unityloader创建一个unity的容器实例,再通过容器实例给游戏对象A发送一个调用Func函数的消息,并且传入一个string参数。
注:可以传递的参数类型:int ,string,空。