2

Unity webgl のパッケージを受け取り、それを Wordpress のコースに入れます。Unity から生成された index.html は、そこの iframe 内でアクセスされます。これは、コースにアクセスするときにユーザーのクリックをカウントできる必要があります。

Unity 開発者は、変数は Click であるとだけ述べており、次の情報もあります。

Application.ExternalCall("Send_Clicks", clickCount.ToString());

Unity のドキュメントを読みました。Unity からメッセージを取得するための js スクリプトを作成する必要があります。Unity からメッセージを取得する方法は? スクリプトはどこに配置する必要がありますか?

どんな答えでも大歓迎です。ありがとうございました。

4

2 に答える 2

5

編集

Unity はApplication.ExternalCallWebGL をサポートするようになったため、そのためのプラグインは不要になりました。古いバージョンの Unity を使用している人のために、古い回答をここに残しておきます。パックされた Chrome アプリで使用するとセキュリティ上の制限があるため、以下の古い回答を使用することをお勧めします。Application.ExternalCallこれは、プラグインでは発生しません。

古い答え:

Application.ExternalCallWebPlayer専用です。WebGLでは機能しApplication.ExternalCallませ

これはプラグインで実現できます。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 関数を呼び出す」という箇所から読み始めてください。

于 2016-03-26T07:11:38.257 に答える