我收到一个 Unity webgl 包,并将其放入 Wordpress 类(class)中。从 Unity 生成的 index.html 是在 iframe 中访问的。这必须能够在访问类(class)时计算用户点击。
Unity开发者只说变量是Click,还有资料:
Application.ExternalCall("Send_Clicks", clickCount.ToString());
我阅读了 Unity 文档,我应该创建一个 js 脚本来从 Unity 检索消息。如何从 Unity 检索消息?脚本应该放在哪里?
非常感谢任何答案。谢谢。
最佳答案
编辑:
Unity 现在支持 WebGL 的 Application.ExternalCall
,因此您不再需要插件。对于那些使用旧版 Unity 的人,我将在此处保留旧答案。仍然建议使用下面的旧答案,因为有一个 security restrictions当在打包的 Chrome 应用中使用 Application.ExternalCall
时。插件不会发生这种情况。
旧答案:
Application.ExternalCall
仅适用于 WebPlayer。 Application.ExternalCall
将不用于WebGL。
这可以通过插件来完成。
让你的 JavaScript 代码看起来像下面的东西。然后将其命名为 PluginName.jslib
。扩展名必须是 .jslib。将其保存到 Assets/Plugins/WebGL/PluginName.jslib
var MyPlugin = {
Hello: function()
{
window.alert("Hello, world!");
},
HelloString: function(str)
{
window.alert(Pointer_stringify(str));
},
};
mergeInto(LibraryManager.library, MyPlugin);
现在在 C# 中,您应该可以这样做:
using UnityEngine;
using System.Runtime.InteropServices;
public class NewBehaviourScript : MonoBehaviour {
[DllImport("__Internal")]
private static extern void Hello();
[DllImport("__Internal")]
private static extern void HelloString(string str);
void Start() {
Hello(); //Call Hello from JavaScript
HelloString("This is a string."); //Call HelloString from JavaScript with parameter
}
}
您必须包含 using System.Runtime.InteropServices;
才能执行此操作。
有关此的更多信息,请访问 http://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html并从“从插件调用 JavaScript 函数”开始阅读。
关于javascript - 从浏览器访问 Unity Webgl 输出,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36232108/