Staticにできるオブジェクト
コライダーがついていてRigidbodyがついていないオブジェクトは動かないオブジェクトと考えられるので、Staticにすることでパフォーマンス向上が見込まれる。オブジェクトプール
Instantiate()
はUnityで最も遅い関数のひとつであるため、シューティングゲームで弾を撃つなど、非常に頻繁にオブジェクトを生成する場合、
Instantiate()
/Destroy()
を繰り返すとパフォーマンス上ハンデを負うことになる。
画面のロード中などのタイミングでListなどに一定数Instantiate()しておき、
SetActive()
で有効・無効を切り替えることでこの処理時間を大幅に削減することができる。
値の初期化などはOnEnable()
で行うとよい。
公式資料: http://unity3d.com/jp/learn/tutorials/modules/beginner/live-training-archive/object-poolingCancelInvoke()
Invoke()
やInvokeRepeating()
で予定されている関数の呼び出しをキャンセルす
る操作などのイベントに従って処理を行いたい場合
event triggerコンポーネントを使用する。ProfilerのCPUのOthersの内訳
Animation, AI, Audio, Particles, Networking, Loading, PlayerLoop が該当する