simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Unity:シーンとオブジェクト

しばらく Unity から離れると、Unity の書式を忘れるので、わかっている範囲で書き留める。
初めて Unity を理解する人には、その理解の一助になるといいですね。

Unity はコンポーネント指向で作られていると公式ドキュメントに書かれていますが、それだけでは初心者の理解はパッとしない。
私の言葉で言い換えるなら、Unity はシーンとオブジェクトで構成されています。

オブジェクトは必ずシーンの下にぶら下がっていて、スクリプトコンポーネント(要はゲームロジック)は必ずオブジェクトの下にぶら下がっています。
ゲームを開始するには必ず一つのシーンから開始する必要があり、二つ以上のシーンを同時に実行することはできません。
シーンを切り替えると、それまでのオブジェクトはすべて消え、新しいシーンにぶら下がっているオブジェクトに切り替わります。

オブジェクトごとにゲームループ処理が記述されており、そのループ処理についてオブジェクト単位の実行順番を意識したロジックを書くことはできません。

ゲームロジックを書いていて気づくでしょうが、シーン開始時だけに一回呼ばれる処理と、毎フレーム呼び出される処理に書き分けたい場面に必ず遭遇します。
そんなときは Start() と Update() 関数を記述すれば、システムが所定のタイミングで処理を呼び出してくれます。

Start() と Update() だけではなく、全ての呼び出し関数と順番がわかれば描きたいシーンが描けるようになります。
そのすべての関数と順番はここに示されています。
スクリプトライフサイクルフローチャート

絶対にこのフローチャートを参照して、処理の順番を意識してゲームロジックを記述しましょう。
これが Unity ゲーム開発のはじめの一歩です。
この処理の順番がイメージできないことには Unity でゲームは作れませんよ?