Unity事例ノート

UNITY

他のメソッドにアクセスして実行する

以前の記事で「他のスクリプトの関数を実行する」というのがあったのですが、今回はまた別の方法で、試してみようと思います。

他のメソッドにアクセスする方法はいつかありますが、今回はinstanceを使ってつくってみましょう。

赤のボールが床に衝突すれば、青のキューブを表示させるというしくみです。

前回よりもかなり簡素に実装できますので、ぜひ試してみましょう。

関連記事:【Unity C#】他のスクリプトの関数を実行する方法

キューブ(アクセスされる側)

Plane、Cube、Sphereの各オブジェクトを用意して、Sphereを上に持っていきます。

Sphereにはリジッドボディを追加しましょう。

Cubeに、CubeAppear.csを作成して追加します。

CubeAppear.csを書きます。

ボール(アクセスする側)

続いて、Sphereにもスクリプトを作成します。

Sphereに、BallDrop.csを作成して追加しましょう。

BallDrop.csを書きます。

ここでゲームプレイしてみると、エラーが表示されます。

NullReferenceException: Object reference not set to an instance of an object

もう一度、CubeAppear.csを編集して、コードを追加しましょう。

CubeActive()にアクセスを試みていますが、その過程で、オブジェクトのインスタンスを参照できなかった。

そこで、void Srart()よりも早く実行されるvoid Awake()を使って、nullを回避しました。

プレイしてみましょう。

このメソッドを呼び出す方法ですと、Findを使ってGameObjectを参照する手間が省けます。

関連記事:【Unity C#】他のスクリプトの関数を実行する方法