【Unity連載】UnityとC#におけるメソッド一覧


代表的なメソッド


Start()、Update()共にUnityと連動したスクリプトにデフォルトで記述されているメソッドです。どちらも特殊なメソッドで、通常のメソッドは別のクラス(設計図)から呼び出されることで使われますが、これら2つのメソッドはUnityによって呼び出されます。
・Start()
クラスが有効の時に、クラスがゲーム内でインスタンス化(実体化)した瞬間の1度だけ呼び出されるメソッド。
・Update()
クラスが有効の時に、1フレーム(※)に1回呼び出されるメソッド。
※フレーム
Unityによって作成されるゲームでは、TVや映画と同様に、1枚1枚が少し違う画像を連続で切り替えて出力することによって映像を表現しています。この、画像を出力してから次の画像を出力するまでの間を1フレームといいます。UnityによるゲームとTVや映画のフレーム出力には大きな違いがあります。テレビや映画では予め記録した映像を流します。しかし、ゲームではプレイヤーの操作次第で次に何が映るかが変わります。そこで、1フレームの中でプレイヤーの入力から計算を行い、その計算結果に従って次のフレームを出力しています。つまり、計算処理速度が速ければより早く次のフレームを出力することができます。フレームを出力する間隔は一定である必要があるため、計算処理に掛かる時間が最も長いフレームに合わせてフレーム出力のインターバルを設定する必要があります。このインターバルを定義した言葉がフレームレートです。1秒間に出力できる画像の枚数をフレームレートといいます。


その他のメソッド


これらのメソッドはStart()、Update()とは違い、デフォルトでは記述されていませんが、Awake()はStart()と、LateUpdate()、FixedUpdate()はUpdate()と非常によく似ており、混同されることも多いため、それらの違いを中心に紹介します。
・Awake()
Start()よりも先に呼び出されます。Awake()が呼び出される順番は不定であるため、このメソッドに他のオブジェクトを参照させていると対象のオブジェクトが初期化されていないために上手く動作しない可能性があります。そのため、Awake()では自身に関する初期化処理を行います。主にシーンのロード(初期化)に使われます。また、他のオブジェクトを参照しつつ初期化を行うイベントはStart()で定義します。
・LateUpdate()
LateUpdate()はUpdate()と同様に1フレームに1回呼び出されます。Update()との違いは、1フレームの中で呼び出されるタイミングです。Update()が様々な処理の途中で呼び出されるのに対し、LateUpdate()は1フレーム中の全ての処理が終わった最後に呼び出されます。
・FixedUpdate()
ゲーム内時間での一定間隔で呼ばれます。現実の時間とは別で動いているため、フレームレートに依存しません。そのため、1フレーム中に1度も呼ばれなかったり、複数回呼ばれたりすることがあります。ゲーム内時間更新後、物理演算処理の前に毎回呼ばれます。

 

  • このエントリーをはてなブックマークに追加

PAGE TOP