ゲームオブジェクト
マニュアル     リファレンス     スクリプト   
Unityマニュアル > ユーザガイド > シーンの構築 > ゲームオブジェクト

このドキュメントは有志により翻訳されたもので、オフィシャルではありません。オリジナルのページはこちら
This document is unofficially translated by users.Please see the original document here.

翻訳に関する修正など、ご連絡はこちらまで。
Please send e-mail to here, when you have any question about the translation.

ゲームオブジェクト(GameObjects)

ゲームオブジェクトはUnityにおいて最も重要なオブジェクトです。 ゲームオブジェクトが何か、どのように使うのかを理解する事はとても大切です。このページではゲームオブジェクトのすべてを説明します。

ゲームオブジェクトとは?

ゲーム中の全てのオブジェクトはゲームオブジェクトです。 しかし、ゲームオブジェクト自身は何もしません。それが、キャラクタや環境、特殊効果として働くには特別な属性が必要です。全てのオブジェクトは様々に働きます。全てのオブジェクトがゲームオブジェクトなのに、どうやってインタラクティブなパワーアップアイテムを、部屋の中から見つけられるのでしょうか?

答えは、ゲームオブジェクトがコンテナ(容れ物)であるという事です。それは、空っぽの箱です。ライトが設定された島や物理的に走行する車など異なる部品をいれておく事が出来ます。ゲームオブジェクトを真に理解するには、それらの部品を理解しなければなりません:部品はコンポーネント(Components)と呼ばれます。あなたが作りたいオブジェクトの種類に応じて、ゲームオブジェクトにいろいろな組み合わせのコンポーネントを追加します。ゲームオブジェクトをからの料理鍋だと考えてください。そして、コンポーネントはゲームという料理を作るための様々な材料です。コンポーネントに関してはここに詳しく記述してありますが、先に、このページを最後まで読む事をお進めします。

ゲームオブジェクトとコンポーネントの関係

ゲームオブジェクトがコンポーネントのコンテナである事は解りました。これから、最も一般的なコンポーネントである、移動(Transform)コンポーネントについて話しながら、ゲームオブジェクトの関係を見ていく事にします。Unityのシーンを開き、Shift-Command-N[Mac](Shift-Control-N[Win])キーで新しいゲームオブジェクトを作成します。それを選択してインスペクタを見てみましょう。


空のゲームオブジェクトのインスペクタ

空のゲームオブジェクトであっても、名前とタグ(Tag)レイヤ(Layer)が有る事が解ります。 全てのゲームオブジェクトは、また、移動コンポーネントも含みます。. Unityにおいて、移動コンポーネントを持たないゲームオブジェクトを作る事は出来ません。全てのゲームオブジェクトの移動属性は移動コンポーネントを使用する事で有効になります。移動コンポーネントは、全てのゲームオブジェクトに非常に重要であるため、 全てのオブジェクトが持っています。しかし、ゲームオブジェクトはそれ以外のコンポーネントを持つ事も出来ます。


シーンにデフォルトで追加される、メインカメラ(Main Camera)

メインカメラゲームオブジェクトを見てみましょう。 異なるコンポーネントを保持している事が解ります。カメラコンポーネント(Camera Component)GUIレイヤ(GUILayer)フレアレイヤ(Flare Layer)オーディオリスナ(Audio Listener)が有ります。コンポーネントはゲームオブジェクトに追加の機能を与えます。 これらが無ければ、プレイする時に何もグラフィックがレンダリングされません!リッジドボディ(Rigidbodies)、衝突物(Colliders)、パーティクル(Particles)、オーディオ(Audio)は全て異なるコンポーネント(または、それらの組み合わせ)で、ゲームオブジェクトに追加する事が出来ます。

移動コンポーネント(Transform Component)

移動コンポーネントは最も重要なコンポーネントの1つです。ゲームワールド(シーンビュー)における、ゲームオブジェクトの位置、回転、縮尺を決めます。 もし、ゲームオブジェクトが移動コンポーネントを持ってなければ、コンピュータメモリ上の何かの情報でしか有りません。 つまり、ワールドに存在しない事と同じです。移動コンポーネントは 親子化(Parenting)も提供します。これは、ゲームオブジェクトを扱うのに非常に重要でUnityエディタ(Unity Editor)を通じて利用する事が出来ます。移動コンポーネントと親子化について知りたければ移動コンポーネントリファレンスページを参照してください。

ゲームオブジェクトとスクリプトの関係

スクリプト(script)を作りゲームオブジェクトに追加すると、コンポーネントと同様にスクリプトがインスペクタに表示されます。スクリプトは保存されるとコンポーネントになります。技術的にはスクリプトはコンポーネント型としてコンパイルされ、他のコンポーネントと同様にUnityエンジンによって扱われます。

スクリプト中で宣言した、全てのパブリック変数は、ゲームオブジェクトのインスペクタ上で編集可能、又は、リンク可能となります。スクリプトを記述する際、ゲームオブジェクトの全てのメンバにアクセスできます。ゲームオブジェクトのクラスメンバリストはここで確認できます。 コンポーネントがゲームオブジェクトに付加されていた場合、スクリプトからメンバ名を指定する事で、直接コンポーネントにアクセスできます。例えば、transformとタイプする事はgameObject.transformとタイプする事と同じです。 特にゲームオブジェクトへの参照を指定しなくても、コンパイラによってgameObjectを指定していると推測されます。

thisとタイプする事で、記述中のスクリプトコンポーネントにアクセスできます。this.gameObjectとタイプすると、そのスクリプトが付加されたゲームオブジェクトを参照します。単に、gameObjectとタイプしても、同様に参照できます。論理的にはthis.transformtransformは同じ意味です。もし、ゲームオブジェクトのメンバに含まれないコンポーネントにアクセスする場合は、次のページで説明するgameObject.GetComponent()を使用しなければなりません。