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

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

var gameInstance = UnityLoader.instantiate("gameContainer", "Build/WebGlTest.json", { onProgress: UnityProgress });

    在其后添加交互方法GetName:

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

    Unity中通过以下方法调用:

        Application.ExternalCall("GetName");

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

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

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

    全屏:将两个

标签的style修改为

style="width: 100%; height: 100%;"
    最终为:

你可能感兴趣的:(Unity)