要实现前端 js 通过 url 给 unity webgl 传参,可以通过两步来实现。第一步是 unity 调用 js 脚本。第二步是将参数给到 url。
unity webgl 和 js 交互 https://docs.unity3d.com/cn/2018.4/Manual/webgl-interactingwithbrowserscripting.html
这个是从 Unity 5.6 开始,5.6 和以后的版本可以这样使用。
步骤
- unity 端在 Assets 文件夹中的 Plugins 文件夹下新建 default.jslib 文件,填入一下代码。
mergeInto(LibraryManager.library, {
GetURLParam: function(key) {
var params = new URLSearchParams(window.location.search)
var returnStr = params.get(key)
if (returnStr) {
var bufferSize = lengthBytesUTF8(returnStr) + 1
var buffer = _malloc(bufferSize)
stringToUTF8(returnStr, buffer, bufferSize)
return buffer
}
return null
}
});
如果要返回字符串给 unity 用,必须要经过
var bufferSize = lengthBytesUTF8(returnStr) + 1
var buffer = _malloc(bufferSize)
stringToUTF8(returnStr, buffer, bufferSize)
处理。
- unity 调用。
using UnityEngine; using System.Runtime.InteropServices;
public class NewBehaviourScript : MonoBehaviour {
[DllImport("__Internal")]
private static extern string GetURLParam(string key);
void Start() {
string step = GetURLParam("step");
Debug.Log(step);
}
}