» VR開発メモトップへ

Unity開発を高速・快適にするためのメモ

最終更新日:2026年08月02日
記事作成日:2022年02月16日

快適なUnityライフを送るためのメモです。意外といろいろあって忘れそうなのでまとめてみました。

更新履歴

(2026年8月2日)「WindowsでUnityを快適にしたい」を追加、全体の構成を見直し


アセットのインポート時間を短くしたい

Unity Acceleratorを使用する

Unity Acceleratorを使用すると、アセットの変換をPCにキャッシュして、同じアセットを2回目以降にインポートするときに変換処理を省略できます。たとえば同じテンプレートを使用して新規プロジェクトを作成したときのインポートが高速になります。

Compress Assets on Import

PreferencesのAsset Pipeline > Compress Assets on Importをオフにすると、アセットの変換をインポート時ではなくビルド時に必要になってから実行するようになります。

デメリットとして、インスペクタでテクスチャの圧縮後のファイルサイズを確認できなくなりますので、そうした場合は一時的にオンに戻します。

WindowsでUnityを快適にしたい

デフォルト状態のWindowsは、macOSと比べてUnityの動作が遅くなる要因がいくつもあります。以下を一通り確認してみてください。

Microsoft Defender

Windows標準のウイルススキャンによりプロジェクトを開いたりビルドするのが遅くなりがちです。「Windows セキュリティ」の ウイルスと脅威の防止 > 設定の管理 > 除外 で、プロジェクトのフォルダやUnity関連フォルダをスキャンの対象外にします。

Unity テクノロジーズの検証では、新しくインストールした Windows 10 で Windows Defender を無効にした後、50 – 66% ビルド時間が減少しました。

Directory Monitoring

Windows版のUnityにはDirectory MonitoringというOSの機能を使用してファイル変更の監視を行う機能がありますが、これが原因でプロジェクトを開くときに長い待ち時間が発生したり、場合によってはプロジェクトがまったく開けなくなります。こちらのスレッドで話題になっています。

無効にするには、Preferences > Asset Pipeline > Directory Monitoringをオフにします。

なお、オフにしてもAuto Refreshの設定でプロジェクト内のファイルの変更は依然反映されます(macOSと同じ動作になります)。

開発者ドライブにする

Windows 11では開発者ドライブ(Dev Drive)という機能があります。Visual StudioのビルドやNode.jsのプロジェクト、Gitの操作等のファイルアクセスが高速になります。PCやSSDを購入したら最初に行うのがおすすめです。

スマートアプリコントロール

Windows 11に最近搭載されたスマートアプリコントロールにより、プロジェクトが正常に開けなくなる場合があります。Windowsの設定で「スマート アプリ コントロール」のページを開いてオフにしてください。

BIOS(UEFI)やドライバ

Windows PCはハードウェア構成がバラバラなので、BIOSやドライバ等の影響が出がちです。特にBTOのPCでおかしいなと思ったら一通りチェックしてみてください。自分が経験した中では、「SSDのファームウェア」という盲点がありました。

再生の待ち時間を短くしたい

Project Settings > Editor > Enter Play Mode Optionsをオンにしてドメインリロードとシーンリロードを無効にすると、爆速で再生開始できるようになります(次で説明しているEditor Iteration Profilerで表示される長時間のドメインリロードの部分が丸々消えます)。

注意点として、ドメインリロードを無効にすると、static変数やstaticイベントハンドラが初期化されません。例えば以下のようなスクリプトがあった場合、再生するたびに表示される数値が増えていってしまいます。これにより既存のコードがエラーになったり予測できない動作になってしまうことがあります。

using UnityEngine;

public class DomainReloadingTest : MonoBehaviour
{
    static int count = 0;

    void Awake()
    {
        Debug.Log(count);
        count++;
    }
}

対策として、static変数を使用しないようにするか、下記のようにstatic変数を初期化するコードを追加します。

using UnityEngine;

public class DomainReloadingTest : MonoBehaviour
{
    static int count = 0;
    
    [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
    static void Init()
    {
        count = 0;   
    }

    void Awake()
    {
        Debug.Log(count);
        count++;
    }
}

詳しくは「Unity - Manual: Domain Reloading」や下記ページを参照です。

Asset Storeのアセットやパッケージのスクリプトがドメインリロードの無効化に対応しておらず正常に動作しないことがあります。プロジェクトを作成してできるだけ早い段階からドメインリロードを無効化しておくと問題が早期に見つかるのでおすすめです。

コンパイル・再生がなぜ遅いのか知りたい

プロジェクト固有の問題がある場合には以下のツールで調査できます。

Editor Iteration Profiler

Editor Iteration ProfilerはUnity公式のパッケージで、コンパイル時やエディタを再生・停止したときにどのような理由で待ち時間が発生しているかを確認できます。

使用するには、Package Managerウィンドウの左上からAdd package from git URL…で https://github.com/Unity-Technologies/com.unity.editoriterationprofiler.git を入力してインストールし、Window > Analysis > Editor Iteration Profiler > Show Windowでウィンドウを開いて左上のEnableをオンにします。

ツリーの中を見ていくと、たとえば[InitializeOnLoad]のメソッドで長時間の処理が毎回実行されていた、というようなことが発見できたりします。

Import Activity

Window > Analysis > Import Activityで、インポートしたアセットや、個々のアセットのインポートにかかった時間、依存の多いアセット等を一覧表示できます。

Compilation Visualizer

Compilation Visualizer for Unityはアセンブリごとのコンパイルの所要時間をグラフィカルに表示するオープンソースソフトウェアです。

使用するには、Project Settings > Package Manager > Scoped Registriesに下記を追加してPackage ManagerのMy Registriesからインストールします。

Window > Analysis > Compilation Timelineを開くとコンパイル時間のグラフが表示されます。アセンブリを選択するとアセンブリの依存関係を確認することもできます。

その他の設定

並列インポートを有効にする

Project Settings > Editor > Pararllel Importをオンにするとマルチスレッドでアセットのインポートができます(PreferencesではなくProject Settingsなのが謎ですが……)。

テクスチャのFast Compressorを使用する

Build SettingsのAsset Import OverridesでTexture CompressionをForce Fast Compressorにするとテクスチャのインポートが圧縮速度優先になります。リリースするときは元に戻す必要があります。

Force Uncompressedにするとそもそも圧縮を行いません。大量のアセットを手っ取り早く試したいときにインポートがとても速くなります。

ビルドを速くしたい

IL2CPPビルドを速くしたい

Unity 2021.2でIL2CPPが速くなっていますが、Build SettingsのIL2CPP Code Generationを「Faster (smaller) builds」にするとさらに倍くらい速くなります。実行速度がいくらか遅くなる(きちんと計測していませんが数割程度?)ので要注意です。

Unity 2022.1では設定がBulid Settings > Playerの中に移動しているようです。

シェーダーのコンパイルを速くしたい

ビルド時のプログレスバー表示で、一つのシェーダーで何千という数のvariantがコンパイルされている場合は、たぶん組み合わせ爆発が起きています。「Unity シェーダーメモ」の「シェーダーのコンパイル時間を短くしたい」を参照してみてください。

Androidビルドを速くしたい

Development BuildでスクリプトのみをビルドするScripts Only Buildオプションがありましたが、Unity 2021.3あたりからこのオプションはなくなっていて、シーンやアセットに変更がない場合は自動的にスクリプトのみビルドするようになっています。

BuildPlayerOptionsにBuildOptions.DevelopmentとBuildOptions.BuildScriptsOnlyを指定すると強制的にスクリプトのみのビルドになります。

WebGLビルドを速くしたい

Publishing SettingsのCompression FormatがBrotliだと出力サイズがGzipの4分の3ほどになりますが、圧縮に非常に長い時間がかかります。開発中はGzipにしておいたほうがよさそうです。Decompressedにするとさらに少し速くなります(が、出力サイズは非常に大きくなります)。

IL2CPPビルドを速くしたい」も参照してください。

ライトマップを焼くのを速くしたい

Progressive GPUに変更する、Lightmap Resolutionを下げる等すると速く焼けるようになります。詳しくは「Unity ライトマップの焼き方メモ」を参照してください。

速いPCを買う

速いPCを使うとすべてが速くなってきっと進捗も出ます。Geekbench BrowserでCPUの型番を検索して、シングルコアとマルチコアのスコアを確認・比較するといいと思います。シングルコアのスコアが高いと日常的なオペレーションが、マルチコアのスコアが高いとビルドやシェーダーコンパイルが速くなります。最近はApple SiliconのMacが速くて快適ですね。