Version: Unity 6.0 (6000.0)
言語 : 日本語
Unity C# スクリプトから JavaScript 関数を呼び出す
Unity C# スクリプトから C/C++/C# 関数を呼び出す

Unity C# スクリプト関数を JavaScript から呼び出す

JavaScript プラグインまたはブラウザーコードから Unity コードを呼び出したい場合があります。例えば、Unity の動作をトリガーし、そのメソッドにアクセスする必要がある JavaScript の UI 要素を作成したい場合などです。

ブラウザーの JavaScript から Unity C# スクリプトにデータや通知を送信するための推奨方法は、SendMessage 関数を使用して Unity プロジェクト内のゲームオブジェクトのメソッドを呼び出すことです。

SendMessage ヘルパー関数の使用

JavaScript コードから Unity スクリプティング API の Unity メソッドを呼び出すには、SendMessage を使用します。

渡せるメソッドの種類には一部制限があります。呼び出しできるのはゲームオブジェクトのメソッドのみで、他のオブジェクトにアタッチされた一般的な C# メソッドは呼び出しできません。また、SendMessage を使用してメソッドを呼び出せるのは、以下のいずれかに該当する場合のみです。

  • メソッドはパラメーターを取りません。
  • メソッドには 1 つのパラメーターがあり、そのパラメーターは単一の文字列です。
  • メソッドには 1 つのパラメーターがあり、そのパラメーターは単一の数値です。

複数のパラメーターを持つメソッドや他の型のパラメーターを持つメソッドは、SendMessage を使用して呼び出すことはできません。

SendMessage コード例

プロジェクトに埋め込まれた JavaScript プラグインから呼び出しを行う場合は、以下のコードを使用します。

MyGameInstance.SendMessage(objectName, methodName, value);
  • objectName は、シーン内のオブジェクトの名前です。
  • methodName は、スクリプト内のメソッドの名前で、現在シーン内のそのオブジェクトにアタッチされています。
  • value は、文字列、数字、または空の場合があります。

以下のコードは、さまざまなパラメーターで呼び出しできる各メソッドの種類を示す例です。

MyGameInstance.SendMessage('MyGameObject', 'MyFunction');
MyGameInstance.SendMessage('MyGameObject', 'MyFunction', 5);
MyGameInstance.SendMessage('MyGameObject', 'MyFunction', 'MyString');

埋め込みページのグローバルスコープから呼び出しを行うには、グローバルスコープからの JavaScript 関数の呼び出し を参照してください。

追加リソース

Unity C# スクリプトから JavaScript 関数を呼び出す
Unity C# スクリプトから C/C++/C# 関数を呼び出す