Unity 发布WebGL并与JS进行传参交互

时间:2025-01-17 19:27:30

    Unity发布WebGL后<head>标签中脚本内容为:

var gameInstance = ("gameContainer", "Build/", { onProgress: UnityProgress });

    在其后添加交互方法GetName:

var gameInstance = ("gameContainer", "Build/", { onProgress: UnityProgress });
		function GetName() {
			var reg = new RegExp("(^|&)" + "name" + "=([^&]*)(&|$)");
			var r = (1).match(reg);
			var name = null;
			if (r != null) {
				name = unescape(r[2]);
				("GameManager", "SetName", name);
			}
		}

    Unity中通过以下方法调用:

        ("GetName");

    可以将此方法放入Start中调用以实现unity模块加载完成后获取通过get方式传过来的参数。

    Unity中被JS调用的方法需要放到GameManager物体上,方法如下:

public void SetName(string _name)
    {
        if (!(_name))
        {
            if ( > 0)
            {
                Destroy((0).gameObject);        
            }
            Transform newTarget = Instantiate<GameObject>(<GameObject>("Prefab/" + _name), target).transform;
        }
    }

    全屏:将两个<div>标签的style修改为

style="width: 100%; height: 100%;"
    最终为:
<div class="webgl-content" style="width: 100%; height: 100%;">
      <div  style="width: 100%; height:100%"></div>
      <div class="footer">
        <div class="webgl-logo"></div>
        <div class="fullscreen" οnclick="(1)"></div>
        <div class="title">WebGLProject</div>
      </div>
    </div>