― プロジェクトとパッケージを別リポジトリに分ける理由とやり方 ―
こんにちは、パパコーダーです。
今回は、Unityでオリジナルパッケージを作るときに
「プロジェクト」と「パッケージ」を分けて管理する方法を、
実例付きでわかりやすく解説します。
🌀 よくある混乱:「プロジェクトの中にパッケージを入れてしまう」
Unityのパッケージ開発を始めたとき、
最初にやってしまいがちなのがこちらの構成です。
MyPackage/
┣ package.json
┣ Runtime/
┗ MyUnityProject/
┣ Assets/
┣ Packages/
┗ ProjectSettings/
一見わかりやすいですが、実はこの構成には大きな落とし穴があります。
- 相対パス参照(
file:../など)が環境によって壊れる - GitHubに公開すると、どこがパッケージなのか分かりにくい
- Unityが延々と「Compiling Scripts」状態になる
✅ 正しい構成:「プロジェクトとパッケージを分ける」
おすすめは、2つのリポジトリに分ける構成です。
E:/Git/
┣ FUnity/ ← パッケージ開発リポジトリ(配布用)
┃ ┣ package.json
┃ ┣ Runtime/
┃ ┣ UXML/
┃ ┣ USS/
┃ ┗ Samples~/BasicScene/
┗ FUnityProject/ ← テスト・検証用プロジェクト(開発用)
┣ Assets/
┣ Packages/
┣ ProjectSettings/
┗ manifest.json
💡 役割の分離
| リポジトリ名 | 目的 | 公開範囲 |
|---|---|---|
| FUnity | パッケージ本体(GitHub公開用) | 🌍 公開OK |
| FUnityProject | テスト・検証用Unityプロジェクト | 👤 個人専用でもOK |
⚙️ FUnityProject の設定方法
FUnityProject/Packages/manifest.json に、
ローカルのパッケージを参照する設定を追加します。
{
"dependencies": {
"com.unity.textmeshpro": "3.0.6",
"com.unity.ui": "1.0.0",
"com.papacoder.funity": "file:/E:/Git/FUnity"
}
}
これで、Unityが E:/Git/FUnity 内の内容を
「開発中のパッケージ」として読み込みます。
保存すれば、Unity上で即反映されます。
🚀 開発から配布までの流れ
| フェーズ | 操作内容 | 設定例 |
|---|---|---|
| 開発中 | パッケージを直接編集 | "file:/E:/Git/FUnity" |
| 動作確認 | Unityでシーンを再生 | 実際のUI挙動を確認 |
| 公開準備 | GitHubにpushしてタグを付ける | v0.1.0 |
| 配布テスト | manifest.jsonをGitHub URL参照に変更 | "https://github.com/oco777/FUnity.git" |
| 公開 | Package Manager → “Add package from git URL” | ✅ 完了 |
📦 「Samples~」の正しい使い方
Unityは package.json と同じ階層にあるSamples~/ フォルダを特別扱いします。
Samples~/BasicScene/
┣ FUnitySample.unity
┣ SampleController.cs
┗ SampleReadme.txt
これを置くと、
Package Manager の「Samples」欄に自動で表示され、
[Import] ボタンでプロジェクト内に展開できるようになります。
💬 よくある質問
❓ Q1. パッケージ内にUnityプロジェクトを入れてはいけないの?
A. NGです。無限コンパイルやファイル監視ループの原因になります。
Unity公式も推奨していません。
❓ Q2. パッケージの中身をUnity上で直接編集したい!
A. 可能です。
manifest.jsonの参照を"file:/E:/Git/FUnity"にすれば
Unityエディタ上から直接編集・保存できます。
❓ Q3. 公開時はどうすればいい?
A. GitHubにPushして、
manifest.jsonの参照をGit URLに戻すだけです。
"com.papacoder.funity": "https://github.com/oco777/FUnity.git"
💡 まとめ
| 項目 | 内容 |
|---|---|
| 🚫 NG | パッケージの中にUnityプロジェクトを入れる |
| ✅ OK | プロジェクトとパッケージを別リポジトリで管理 |
| 🧩 メリット | 無限コンパイル防止・パス安定・GitHub配布が簡単 |
| 🔧 設定 | "file:/E:/Git/FUnity" でローカル開発、公開時はURL参照 |
✨ おわりに
教育向けツール「FUnity」を開発する中で、
私自身も「プロジェクトとパッケージの分離」に何度も悩みました。
でも、この構成に変えてから
✅ Unityの再コンパイルが安定し、
✅ パッケージの配布テストもスムーズに行えるようになりました。
これから自作ツールやライブラリを作りたい方は、
ぜひこの「2リポジトリ構成」を試してみてください!
🔗 関連リンク
📝 執筆:パパコーダー
Unityゲームプログラマー。教育向けツール「FUnity」開発中。

コメント