ここでは、Unityにおけるオブジェクトの扱いとスクリプトの基本的なことを説明していきます。
開発環境
- Unity 2019.4.1f1
Unityにおけるオブジェクト
UnityにおけるオブジェクトはGameObject、アセットの2種類のみです。
GameObject
Unityにおけるエンティティ(=3D Object、Light、CameraなどUnityのHierarchyに表示されるもの)はすべてGameObjectです。GameObject自体はエンティティを表すカラの入れ物で、Componentをアタッチすることでその形状や機能・動作を指定することができます。
アセット
アセットはUnityに取り込まれたファイルのことで、デフォルトではUnityのProject > Assetsに表示されます。アセットストアから取得したデータや、Unityスクリプト、画像データ、テキストデータなどのすべてのファイルがここに含まれます。
GameObjectからアセットのデータを参照することでGameObjectを修飾したり、動作を指定したりすることができます。また、一部のアセットはComponentとしてGameObjectにアタッチすることも可能です。
Unityスクリプトとは?
ゲームを作るにはUnityのオブジェクトを一定のルールに従って変化させたり、プレイヤーの入力に従ってオブジェクトを移動させたりする必要があります。そのルールを作るのがスクリプトです。
Unityスクリプトのライブラリ
UnityスクリプトはC#で作成し、Unityに組み込まれたMono Runtimeによって実行されます。また、ここで使用可能なクラスライブラリはデフォルトでは.NET Standard 2.0に準拠したライブラリですが、.NET 4.x (.NET Framework 4.xのこと?)も選択可能です。
C#の実装については以下の記事をご覧ください。
さらに、Unityスクリプト用のライブラリも使用可能です。実際のスクリプトは主にUnityEngine名前空間のライブラリを用いて作成していくことになります。
それぞれのクラスライブラリのドキュメントは以下になります。
C#スクリプトの実行
UnityEngine.MonoBehaviour クラスを継承することで、そのスクリプトをGameObjectにアタッチできるようになります。アタッチされたスクリプトは、Sceneが読み込まれたときにStartメソッドが読み込まれ、その後はUpdateメソッドがUnityの描画フレームごとに呼ばれます。
このようにして、UnityのC#スクリプトはGameObjectにアタッチすることで、ゲームの進行に合わせて自動的にStartメソッドやUpdateメソッドが呼び出されることで実行していく流れになります。
通常のC#プログラムのようにMainメソッドから実行するのではないので、最初は戸惑うかもしれませんが、あくまでもスクリプトなのでゲーム全体の進行はUnity側が管理してくれるというイメージです。
コメント