どれぐらい効果があるか分かりませんが、アイデアだけ。
GameObjectのアクティブではなくコンポーネントを無効化する
コンポーネント.enabled = false;
のようにすると、GameObjectはオンでもそのコンポーネントだけオフに出来ます。
オフの時は描画用コンポーネント(SpriteRenderer)なら描画されませんし、
スクリプトは一切のメソッドが呼ばれず「Updateが呼ばれる負荷」も無くなるので効果的かもしれません。
表示範囲を広げる
「表示する・消す」という判定自体が負荷になっている可能性があるので、逆に一度で大きめに表示してしまい、切り替え頻度を下げた方がスムーズになる可能性もあります。
Profilerで調査・検証しつつ最適値を探すといいかと。
Colliderを使わない
マップチップ方式ということは、「左からX番目、下からY番目のブロックは岩」などの地形情報の配列と考えることが出来ます。
つまりわざわざ衝突判定するのではなく、「このキャラは(X,Y)にいる→その座標のブロックはAである」という位置ベースの判定が出来ます。
物理演算は負荷が高いので、このようなシンプルな判定にする&判定頻度を減らす(移動する時のみ実行するとか)にすると負荷軽減出来るかと。
敵を動かさない
そもそも描画外の敵は何もしない、という割り切り。
雑魚敵は固定・特殊な敵だけ動くとかにするだけでも数が多い場合効果的かと。
(まぁゲーム性やスクロール頻度によってはどうしようもないかもしれませんが、動く頻度を減らすとか工夫は出来そう)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/23 03:19