概述
本章记录在使用unity3D制作场景并导出webgl,然后unity和js进行两边交互,本人使用unity的版本为5.6.7。在初始化进入场景时cube并没有旋转,我们在点击开始旋转按钮后unity的cube开始旋转,效果图:
unity向html传递“开启旋转”的参数值:
步骤
- 在unity中编写js脚本,首先创建一个cube,然后将脚本挂载到cube上
var a:boolean = false;
function Start () {
}
function Update () {
if (a) {
tRotate();
}
}
function tRotate() {
// Application.ExternalCall("startRotate", "开启旋转"); 中的startRotate为js需要调用的方法名,"开启旋转"为unity向html中startRotate方法传递的参数值
Application.ExternalCall("startRotate", "开启旋转");
// 将unity中的变量名设置为bool,update函数检测到后会执行旋转
a=true;
transform.Rotate(0, 5, 0);
}
- 对应的html中页面编写脚本
// startRotate对应unity中定义的方法名,str参数接收传递过来的值
function startRotate(str) {
console.log(str);
}
// 此处定义一个id为btn的按钮,并定义一个点击事件,当点击的时候向unity中名为Cube1的游戏对象执行tRotate方法
document.getElementById('btn').onclick = () => {
gameInstance.SendMessage("Cube1","tRotate","")
}
github地址为打包后的webgl文件
链接: github地址