Unity事例ノート

UNITY

インスタンス化したクラスを呼び出す

他のオブジェクトにあるスクリプトを実行するには、GetComponentを使う方法があります。

【Unity C#】他のスクリプトの関数を実行する

今回はクラスをインスタンス化して、そこにアクセスする方法を試してみましょう。

関連記事:
他のスクリプトの変数を取得する
他のスクリプトの関数を実行する
他のスクリプトのBoolを取得する

キューブをクリックすると、ボールが出現する動きをつくってみます。

PlaneとCube、GameObject(空のオブジェクト)を用意します。

SphereのPrefabを作成して、リジッドボディを付けておきます

instanceを使う

BallDrop.csを作成し、GamaObject(空のオブジェクト)に追加します。

BallDrop.csは以下のように書きました。

Awake()は、Start()よりも前に、スクリプトのインスタンスがロードされたときに呼び出されます。

「NullReferenceException: Object reference not set to an instance of an object」というエラーを回避するため、Nullであれば、BallDropをインスタンスとして参照するようにしています。

GameObjectのインスペクターを確認すると、Ball項目が出来ています。

ここにはSphereのPrefabデータを入れておきます。

以上でボールを生成する(アクセスされる)側のスクリプトは完成しました。

staticクラスにアクセスする

続いて、Cubeのほうのスクリプトをつくりましょう。

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

スクリプトは以下のように書きました。

プレイして動きを見ましょう。

クラスを静的なものとして固定し、ここへアクセスする方法。

instanceの使用例として紹介しました。

関連記事:
他のスクリプトの変数を取得する
他のスクリプトの関数を実行する
他のスクリプトのBoolを取得する

この記事の監修・専門指導

枚方市のプログラミング専門スクール
フタバゼミ 枚方くずは校

この記事で解説したUnityやC#の技術も、当校では直接個別指導しています。「むずかしいことをおもしろく」をモットーに、初心者から本格開発までサポート。樟葉駅から徒歩1分、まずはお気軽に体験会へお越しください。

SCHOOL教室案内