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

> Call functions from your Unity project in your JavaScript plug-in or browser.

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

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

## SendMessage ヘルパー関数の使用##use-the-sendmessage-helper-function

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

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

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

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

## SendMessage コード例##example-sendmessage-code

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

```js
MyGameInstance.SendMessage(objectName, methodName, value);
```

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

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

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

埋め込みページのグローバルスコープから呼び出しを行うには、[グローバルスコープからの JavaScript 関数の呼び出し](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-js-to-unity.md#global-scope) を参照してください。

## 追加リソース##additional-resources

* [ブラウザースクリプトとの相互作用](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting.md)

* [JavaScript プラグインの設定](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-js.md)

* [Unity C# スクリプトから JavaScript 関数を呼び出す](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-js-to-unity.md)

* [Unity C# スクリプトから C/C++/C# 関数を呼び出す](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browsers-c-to-unity.md)

* [Unity C#、JavaScript、C/C++/C# コード間のコールバックの作成](/engine/6000.0/manual/platform-specific/webgl/develop/interactingwithbrowserscripting/web-interacting-browser-example.md)
