ドキュメント

Unity Engine

Unity Engine

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

Call functions from your Unity project in your JavaScript plug-in or browser.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前

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 関数の呼び出し を参照してください。

追加リソース