前言:在之前做的一个小项目中,需要使用Unity打包出webgl网页,并且用其中的html接受之前网页传过来的一个参数。这不属于我擅长的,但是没办法,问题还是要解决的,经过查询资料,最终我还是解决了这个问题。具体步骤如下。
1.使用Unity打包出webgl包,打开其中的index.html文件。
2.打出的代码如下。
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | OneInstruct1</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/UnityProgress.js"></script>
<script src="Build/UnityLoader.js"></script>
<script>
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebTest2019-9-21-du-2.json", {onProgress: UnityProgress});
</script>
</head>
<body>
<div class="webgl-content" style="width:100%;height:100%">
<div id="gameContainer" style="width: 100%; height: 100%"></div>
</div>
</div>
</body>
</html>
3.在此html文件中添加如下代码。
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | OneInstruct1</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/UnityProgress.js"></script>
<script src="Build/UnityLoader.js"></script>
<script>
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebTest2019-9-21-du-2.json", {onProgress: UnityProgress});
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则
if(r!=null)
return unescape(r[2]);
return null;
}
function PassInformation()//承接Unity
{
var str = GetQueryString("id");
gameInstance.SendMessage("Main Camera", "GetInformation", str);//参数分别是:Unity里面挂载脚本的gameobject,要触发的脚本里面的方法,脚本方法括号里面的参数
}
</script>
</head>
<body>
<div class="webgl-content" style="width:100%;height:100%">
<div id="gameContainer" style="width: 100%; height: 100%"></div>
</div>
</div>
</body>
</html>
4.var str = GetQueryString(“id”);这里就是调用上个网页传来的字符串,获取到了上个网页的字符串,就可以给Unity调用了。