🎯 Unityパッケージ開発をわかりやすく!

FUnity Unity
FUnity

― プロジェクトとパッケージを別リポジトリに分ける理由とやり方 ―

こんにちは、パパコーダーです。

今回は、Unityでオリジナルパッケージを作るときに
「プロジェクト」と「パッケージ」を分けて管理する方法を、
実例付きでわかりやすく解説します。


🌀 よくある混乱:「プロジェクトの中にパッケージを入れてしまう」

Unityのパッケージ開発を始めたとき、
最初にやってしまいがちなのがこちらの構成です。

MyPackage/
 ┣ package.json
 ┣ Runtime/
 ┗ MyUnityProject/
    ┣ Assets/
    ┣ Packages/
    ┗ ProjectSettings/

一見わかりやすいですが、実はこの構成には大きな落とし穴があります。

⚠️ Unityが「プロジェクト」と「パッケージ」を同時にスキャンして無限コンパイルになることがあります。
  • 相対パス参照(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」開発中。


コメント

タイトルとURLをコピーしました