+
*
+
ココ先生
ゲーム開発の案内役
この記事では パフォーマンス予算 を、読んで終わりにせず、PerformanceBudgetDemo の小さな実装イメージまでつなげて案内します。
+
*
+
はじめちゃん
ゲームエンジン学習中
重くなる前に決めるパフォーマンス予算入門 を読む前に、まずUnity のどこを見ればよいかを確認したいです。
今日は「パフォーマンス予算」を、まず何が変わるのか、次に画面で何を見せるのか、最後にどの値を確認するのか、という順番で読んでいきます。
大きなテーマに見えますが、今日は「PerformanceBudgetDemo」という小さな練習用の場面だけを作るのですね。何から始めればよいか分かりました。
目標FPSを見るを表示、Add Load Buttonで進める、負荷を足すを確認の流れを追えば、記事の内容を自分のプロジェクトへ移しやすくなります。

完成イメージ
パフォーマンス予算の状態を分ける
目標FPSを見る、負荷を足す、警告を出す を別々の状態として扱い、今どの段階かを画面で確認できるようにします。
重くなる前の限界をUIで伝える
Console だけではプレイヤーには見えません。TextMeshPro や Slider に targetFps / drawCalls / memoryMb を出して、判断材料を画面へ移します。
最小実装から広げる
まず PerformanceBudgetDemo を動かし、その後に本物の入力、通信、戦闘、保存処理などへ置き換えると、原因を見失いにくくなります。
導入
画面に出してよい敵数を数え、上限を超えたら生成を待たせます。重くなりすぎないための入場券です。
作るもの
Spawner に PerformanceBudget を付け、maxEnemies を決めます。
最初の実装
[SerializeField] int maxEnemies=20; // 同時に出してよい敵の上限
int activeEnemies;
動きをつなぐ
public bool TrySpawn(){if(activeEnemies>=maxEnemies)return false;activeEnemies++;return true;}
完成版
using UnityEngine;public class PerformanceBudget:MonoBehaviour{[SerializeField]int maxEnemies=20;int activeEnemies;public bool TrySpawn(){if(activeEnemies>=maxEnemies)return false;activeEnemies++;return true;}public void Despawn(){activeEnemies=Mathf.Max(0,activeEnemies-1);}}
最後に整理すると、パフォーマンス予算でいちばん見失いやすい所はどこですか?
内部処理だけを追って、画面で伝える言葉を後回しにする所です。PerformanceBudgetDemoでは、まずプレイヤーに見える変化を先に決めます。
流れは「目標FPSを見るを表示」から始めて、「Add Load Buttonで進める」で操作を入れる、と覚えればよいですか?
その通りです。その後に「負荷を足すを確認」で途中状態を見て、「警告を出すで結果を見る」で結果を確認します。順番を固定すると、失敗した場所も見つけやすくなります。
つまり、いきなり完成システムにせず、状態名、表示、値の変化を小さくそろえるのですね。
はい。最後は「パフォーマンス予算をわかりやすく考える」の考え方で、難しい処理をプレイヤーに伝わる短い合図へ置き換えられるか確認しましょう。
この記事のまとめ
描画、オブジェクト数、エフェクト、更新頻度を『どこまで使ってよいか』で先に決め、後半で破綻しないための初心者向けガイド。
大きな違いを生むのは、派手な性能よりも 毎日触れる環境を無理なく整えること です。見やすい画面と使いやすい道具がそろうと、学習や次の一歩を決めやすくなります。