2012-02-16 10 views
1

JavaScriptを使用してUnity3D Pluginのシーンを制御することはできますか? JavaScript-Codeは、Unity3D Pluginのコンテキストではなく、ブラウザのコンテキストで実行する必要がありますか?Unity3Dを外部JavaScriptで制御できますか?

シーンのオブジェクトを変換、削除、追加する必要があります。

おそらく例がありますか?

ありがとうございました。

答えて

2

はい、可能です - 少なくとも、私はそれをしたことを知っていますが、それはかなり前です。

Here's the demo page私は一緒にまとめました。

気軽にページのソースコードを見てください。そのほとんどはUnity's docs and examplesです。 Unity Web Playerとの間でメッセージを送受信する簡単なラッパーを作成し、コードを少し修正しました。

私のコードはPrototype.jsに基づいているので、jQuery(最近のほとんどの人のような)を使用している場合はマイナーな書き直しが必要ですが、それほど悪くはありません。あるいはUnityの既成のものを使うこともできます。

私はUnityのコーダーではないので、Unityのサイドをセットアップする方法を正確に伝えることはできません(シンプルなシェーダーベースのデモを作成しましたが、ソースを失ってしまいましたファイルだと思います)が、私が思い出したように、それはパブリックメソッドのセットを持つゲームオブジェクトを作成するだけの問題でした。これらのメソッドは、JavaScript経由で呼び出すことができます。そのような単純な。

基本的には、JS側から、あなたがしなければならないすべてはこれです:あなたがしたい場合

var player = document.getElementById("UnityObject"); 
player.sendMessage("name of game object", "name of method", "argument"); 

また、JavaScriptに戻ってゲームオブジェクトからメッセージを送信することができます。デモでは起こりませんが、うまくいくはずです。詳細については、ソースを確認してください。

+0

シーン内に複数のオブジェクトがあり、そのシーン内の異なるオブジェクトに移動するカメラがある場合はどうなりますか? –

+0

@ KalaJ First:この情報は最新ではありません。ここ2年間でAPIが変更されたかどうかはわかりません。とにかく、あなたがオブジェクトの名前を知っている限り、私が知る限り、場面のゲームオブジェクトにメッセージを送ることができます。しかし、それが非常にダイナミックならば、1つのオブジェクトをある種類のコントローラにする方が簡単だと思います(どのような方法でも表示する必要はなく、常にそこになければなりません)。したがって、JSはそのコントローラオブジェクトとのみ話し合います。コントローラオブジェクトは、物事のUnity側を処理します。 – Flambino

関連する問題