| この記事の要点 |
|
Unity でのゲームビルドの全体像
Unity でゲームを「他の人がプレイできる形」に書き出すには Build 操作が必要です。Build はソースとアセットを実行可能ファイル / APK / WebGL 等に変換する処理で、Unity エディタ内でメニューから 1 操作で行えます。
| プラットフォーム | 出力 | 備考 |
|---|---|---|
| Windows (Standalone) | .exe + Data フォルダ | 圧縮して配布 |
| Mac (Standalone) | .app バンドル | 署名・公証が App Store 外でも推奨 |
| Linux | 実行ファイル | x86_64 |
| Android | .apk / .aab | Play Store は .aab 必須 |
| iOS | Xcode プロジェクト | Mac + Xcode が必要 |
| WebGL | HTML + JS + データ | ブラウザで動く |
| PS / Xbox / Switch | 各社専用 | パブリッシャー契約必要 |
ステップ1: Build Settings を開く
File → Build Settings (Ctrl+Shift+B / Cmd+Shift+B) でビルド設定ダイアログを開きます。ここで以下を設定:
- Scenes In Build: ゲームに含めるシーン(一番上が起動時)
- Platform: ターゲット OS
- Player Settings: 詳細設定
ステップ2: シーンを追加
「Scenes In Build」エリアに、ゲームで使うシーンをドラッグ&ドロップ、または Add Open Scenes ボタンで追加します:
- リスト順が重要: 一番上の Build Index 0 が起動時に最初にロードされる
- チェックを外したシーンはビルドに含まれない(容量削減目的の除外も可)
SceneManager.LoadScene("MainMenu")で参照するシーン名はビルドに含まれている必要あり
ステップ3: Platform を切り替え
Build Settings 左側の Platform リストから対象を選び、Switch Platform ボタンを押します。プラットフォーム切替はアセットの再インポートが走るため、初回は数分〜数十分かかります。
| Platform | 事前準備 |
|---|---|
| Android | Android Build Support / SDK / NDK / JDK(Unity Hub からモジュール追加) |
| iOS | iOS Build Support + Mac + Xcode 最新 |
| WebGL | WebGL Build Support |
| Windows IL2CPP | Visual Studio + C++ ビルドツール |
ステップ4: Player Settings の必須項目
Build Settings の Player Settings... ボタンを押すと詳細設定が開きます。最低限以下は必ず設定:
| 項目 | 説明 |
|---|---|
| Company Name | 会社名(Identifier の一部) |
| Product Name | ゲーム名(タイトルバー表示) |
| Version | バージョン番号(1.0.0 等) |
| Default Icon | アプリのアイコン |
| Default Cursor | カーソル画像(PC) |
| Resolution and Presentation | 解像度、フルスクリーン |
| Scripting Backend | Mono(速いビルド)/ IL2CPP(速い実行、サイズ大) |
| Api Compatibility Level | .NET Framework 互換性 |
ステップ5: ビルド実行
準備が整ったら、Build Settings ウィンドウで:
- Build: 出力先フォルダを指定してビルド
- Build And Run: ビルド後に即実行(テスト時便利)
ビルド時間はプロジェクトの大きさによって数分〜1 時間以上。初回 IL2CPP ビルドは特に時間がかかります。
プラットフォーム別の追加設定
Android
- Package Name:
com.example.mygame形式(一度公開したら変更不可) - Minimum API Level: 24 (Android 7.0) 以上が Play Store 必須
- Target API Level: 最新の Google 要件に合わせる
- Keystore: リリースビルドには署名鍵が必須。
keytoolまたは Unity の Keystore Manager で作成 - Build App Bundle (.aab): Play Store 配信は .aab 必須
iOS
- Bundle Identifier:
com.example.mygame - Signing Team ID: Apple Developer Program に登録した Team
- Unity はビルド時に Xcode プロジェクトを出力し、そこから Xcode でビルドして .ipa にする 2 段階
WebGL
- Compression Format: Brotli(最小サイズ)/ Gzip / Disabled
- Code Optimization: Master / High
- 出力後は HTTPS サーバーに配置(itch.io / GitHub Pages 等)
- サーバー側で gzip/brotli の Content-Encoding ヘッダ設定が必須
デバッグビルド vs リリースビルド
| 設定 | Development | Release |
|---|---|---|
| Development Build | ON | OFF |
| Script Debugging | ON | OFF |
| Autoconnect Profiler | ON | OFF |
| Strip Level | Low | High |
| Scripting Backend | Mono | IL2CPP |
コマンドラインビルド(CI/CD 用)
# Unity をヘッドレスで起動してビルド
"C:\Program Files\Unity\Hub\Editor\2023.2.0f1\Editor\Unity.exe" \
-batchmode -nographics -quit \
-projectPath "C:\path\to\project" \
-executeMethod BuildScript.BuildWindows \
-logFile build.log
# プロジェクト内に BuildScript.cs を用意
# public static void BuildWindows() {
# BuildPipeline.BuildPlayer(...)
# }
ストア配信
- Steam: Steamworks に登録 → Steam Pipe でアップロード
- App Store: Apple Developer Program ($99/年) → App Store Connect
- Google Play: Google Play Console ($25 一括) → .aab アップロード
- itch.io: 個人開発・WebGL に最適、無料
- Epic Games Store: Epic Online Services 経由
FAQ
Q: ビルドサイズが大きい
A: テクスチャ圧縮、未使用アセット削除(Stripping)、Addressables 活用。Build Report Inspector で内訳確認。
Q: ビルド後に黒画面で落ちる
A: Player.log を確認。シェーダー欠落、必要なシーンが Build Settings から外れているケースが多い。
Q: Android で「Failed to install APK」
A: Minimum API Level が端末より高い、または署名不一致。adb logcat で詳細を確認。
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38