本日はUnity枠です。
今回は筆者も開発にかかわっているMicrosoft MixedRealityToolkit GraphicsTools(以下MRGT)の仕組みが気になったので模倣しながらGitHubのリポジトリからUnityのパッケージとして配布できるサンプルを作っていきます。
前回の記事はこちらになります
〇配布パッケージのインポート
ここでは運用環境のUnityプロジェクトでGitHubからUnityパッケージをインポートしていきます。
①開発プロジェクトでPackageManagerを開き+アイコンを選択します。
②[Add package form git URL...]を選択します。
③GitHubのリポジトリからCodeで表示されるHTTPSのURLをコピーします。
筆者がサンプルで作ったリポジトリの場合以下になります。
https://github.com/HoloMoto/UnityPackage_import_from_GitHub_Sample.git
リポジトリ直下に配布パッケージのPackage.jsonが存在すれば問題ないですが、今回の場合com.holomoto.sampleUnityPackageフォルダにpackage.jsonが存在しています。
こういった場合はURLにひと手間を加える必要があります。
④[Add package form git URL...]のURLとして次のURLを指定します。
https://github.com/HoloMoto/UnityPackage_import_from_GitHub_Sample.git?path=/com.holomoto.samplepackage.unity
ここでは?path=/com.holomoto.samplepackage.unityを追加しました。
このように?path=を指定することでパスを指定できます。
〇配布パッケージにエディタ拡張を含める
エディタ拡張とはUnityエディタを拡張する機能を指します。
例えば筆者が良く使用しているMicrosoft MixedRealityGraphicsToolsで提供されているメジャーツールなどもエディタ拡張になります。
エディタ拡張はUnityEditorで開発時に使用することが想定されており、逆にビルド時にコンパイル対象から外されることが多いです。
このような機能は通常Editorという名前のフォルダに配置することでUnityで特別なフォルダとして扱われ機能しますが、これはAssets内にある場合で配布パッケージで割り当てられるPackage内では機能しません。
このため配布パッケージにエディタ拡張を含めるためにはいくつかの工夫が必要になります。
①配布パッケージのEditorフォルダ直下で右クリック、Create→Assembly Definitionを選択しAsmdefファイルを作成します。
②Asmdefファイルを選択し、インスペクターからEditorへチェックを入れます。
これによってEditor拡張としてコンパイルされるように定義されます。
〇依存関係の定義
配布パッケージを使用するためには○○という別のパッケージを必要とするように設定したいという場合があります。
例えば筆者の場合はMRGTをよく使用しているためMRGTのマテリアルやシェーダーとの依存関係を持たせたいと思うことがあります。
こういった場合には次のような定義を行うことで依存関係を示すことができます。
"dependencies": { "com.microsoft.mrtk.graphicstools.unity": "" }
以上でUnityパッケージマネージャーを使用したGitHub経由での配布パッケージの完成になります。