Unity Custom PackageをGithub経由で配布
Unityのプロジェクトを外部に共有する際はunitypackageで共有することが多いと思います。
ですがバージョン管理などが難しいなど問題があったので別の方法を探していました。
PackageManagerを使ってカスタムパッケージを配布することでバージョン管理などを行いやすくすることが可能そうだったためその方法をまとめていきたいと思います。
今回はカスタムパッケージの作成方法と配布方法をまとめます。
また別で更新の方法もまとめようと思います。
作り方
-
Unityで空のプロジェクトを作成する。
-
Unity エディタ上でPackagesフォルダを右クリックしてExploler(MacならFinder)で開く
-
Packages フォルダ下に適当な名前のフォルダ(今回はTestフォルダ)を作成。
-
3で作成したフォルダ下にpackage.jsonを作成
package.jsonの内容はこちら↓を参考に作成していきます。
https://docs.unity3d.com/2019.4/Documentation/Manual/upm-manifestPkg.html
今回は必須の属性のname, version、必要な属性のdisplayName, description, unity を記載しました。{ "name": "com.nakashun.custom_package_test", "version": "0.1.0", "displayName": "CustomPackageTest", "description": "This is a test package", "unity": "2020.2" }
-
Packagesフォルダ下のmanifest.jsonにdependenciesにpackage.jsonに記載したname, version属性を形式をそろえてを追加
{ "dependencies": { ~~~ "com.nakahun.custom_package_test": "0.1.0" }
-
Unityエディタを一度再起動するとPackagesフォルダの中にpackage.jsonでdisplayNameで指定した名前のフォルダが追加される。
-
必要なファイルをPackages下の作成したフォルダに置いていく
今回は下記のCustomPackageTestScript.csというスクリプトを配布できるようにしていきます。using UnityEngine; namespace Nakashun { public class CustomPackageTestScript : MonoBehaviour { void Start() { Debug.Log("Hello from Custom Package script"); } } }
-
AssemblyDefinitionFileを作成します。AssemblyDefinitionの詳細はこちら
https://docs.unity3d.com/ja/2018.4/Manual/ScriptCompilationAssemblyDefinitionFiles.html
https://docs.unity3d.com/ja/2018.4/Manual/ScriptCompilationAssemblyDefinitionFiles.html
作成したScriptsフォルダをPackagesフォルダ下の今回作成したフォルダ(今回はCustomPackageTestフォルダ)にドラッグ&ドロップ。
-
説明資料を追加する。
下記のような説明資料を必要に応じて追加
CHANGELOG.md
README.md
LICENSE.md -
パッケージを配布できるようにする
今回はこちら↓を参考にGithubURLからインストールできるようにします。
https://docs.unity3d.com/Manual/upm-ui-giturl.html
Githubに作成したフォルダ(今回の場合3.のTestフォルダ)をプッシュします。
作成したパッケージの確認
ひとまず配布する側の準備は完了なのでパッケージが使えるか確認していきます。
- インポートする用の新しいUnityプロジェクトを作成。
- WindowよりPackageManagerを開く
- PackageManagerでAdd package from git URL...を選択
- 作り方9でGithubに作成したリポジトリを公開にしてHTTPSのURLをコピペしてAdd
Addするとこちらのように追加される。
- 追加できたら適当なシーンで適当なオブジェクトにCustomPackageTestScript.cs がAddComponentできるようになりました。
- AddComponentしてシーン再生するとログ出力が確認できます。
ちなみに
- 作り方の4でpackage.jsonに記載した属性などはPackageManagerで詳細を表示できるようしたり依存パッケージを追加したり充実させることが可能です。
- 今回配布用に作ったパッケージのGithubリポジトリはこちらです。上記の方法でunityプロジェクトにインストール可能です。
https://github.com/nakashun-t/CustomPackageTest
Discussion