Unity事例ノート

UNITY

他のスクリプトの関数を実行する

他のオブジェクトのにある関数を実行する方法について、3つの方法を試してみましょう。

今回は、Cubeをクリックすれば、Sphereが消える仕組みをつくります。

CubeとSphereを用意します。

CubeClick.csとSphereDisplay.csを作成し、それぞれのオブジェクトに追加しています。

関連記事:
【Unity C#】他のスクリプトのBoolを取得する
【Unity C#】他のスクリプトの変数を取得する
【Unity C#】他のオブジェクトの配列を取得する

①instanceを使う方法

Sphere側(アクセスされる側)のスクリプト

SphereDisplay.csを記述します。

Cube側(アクセスする側)のスクリプト

CubeClick.csを記述します。

ゲームプレイして、Cubeをクリックしてみましょう。

②Findで参照する方法

Sphere側(アクセスされる側)のスクリプト

SphereDisplay.csを記述します。

Cube側(アクセスする側)のスクリプト

CubeClick.csを記述します。

ゲームプレイして、Cubeをクリックしてみましょう。

③直接フィールドに入れて参照する方法

Sphere側(アクセスされる側)のスクリプト

SphereDisplay.csを記述します。

Cube側(アクセスする側)のスクリプト

CubeClick.csを記述します。

SphereDisplayのフィールドに、Sphereオブジェクトを入れます。

ゲームプレイして、Cubeをクリックしてみましょう。

以上今回は、instanceを使う、Findで参照する、直接フィールドに入れるといった、他のオブジェクトにあるスクリプトのメソッド実行方法を作ってみました。

ただし、②Findで参照する方法や、③直接フィールドに入れる方法では、アクセスされる側のオブジェクトが非表示の場合、そもそも取得ができません。

①instanceを使う方法を行えば、スムーズに関数を実行できるのでおすすめです。

他のスクリプトの関数を実行するしくみは、いろいろなシーンで活用できます。

関連記事:
【Unity C#】他のスクリプトのBoolを取得する
【Unity C#】他のスクリプトの変数を取得する
【Unity C#】他のオブジェクトの配列を取得する