この記事について
※文章が長くなるのでUnityPackageManagerをUPMと略称しています
UPMで管理できる自作Packageの作成から、
GitHubのリポジトリからダウンロードするまでのメモです。
間違っている部分があればコメントにてご指摘頂けると幸いです!
今回作成した自作Package
この記事の対象者
・GitHubのリポジトリ作成など基本操作が出来る方
・SourceTreeを利用して共同開発を行った事がある方
・UPMのadd package from git URL
を利用した事がある方
今回の方法でエラーは出ないと思いますが、UPMのGit経由ダウンロードでエラーが出る方はこちらの記事をご確認下さい。
自作Packageの作成手順
分かりやすい記事が既にあるのでリンクを貼っておきます。
今回は自分が躓いた部分の内容を記事に残そうと思います。
自作Package対応で躓いた部分
- パッケージのレイアウト
紹介した記事内で説明がありますが、自分はこの部分に少し困惑しました。😓
これはフォルダーの階層構造を指してます。
つまりUnity上で見た時のファイルの並び順ですね...
何故この部分で困惑していたのか自分でも分からないです.......
-
package.json
に書く内容を間違えたこと
現在のpackage.json
は以下の内容になっています。
{
"name": "com.hamster.editor",
"displayName": "Generate Script Template",
"version": "1.0.0",
"description": "Editor extension to create scripts from templates",
"author": {
"name": "hamster",
"email": "hmu3156@gmail.com",
"url": "https:hamster//github.com/hamster3156"
},
"keywords": [
"editor"
],
"dependencies": {
}
}
"name"
部分をCom.Hamster.Editor
のように記述していたのですが、UPMに認識されずエラーが出ました。名前部分は小文字にしないと認識してくれないみたいです。
基本的には上にあるpackage.json
の内容で問題ないです。
-
package.json
がルートディレクトリに存在しない時
プロジェクトの最上位のディレクトリの事を指していて、画像だとAssets
が最上位のルートディレクトリになっている事が分かると思います。
画像のルートディレクトリだと、下のようになっています。
|-Assets
| |-GenerateScriptTemplate
| |-Sample
| |-Scenes
| |-この階層にpackage.jsonがない時
上のように、ルートディレクトリにpackage.json
がない場合、GitHubのHTTPS
のリンクを使ってadd package from git URL
によるダウンロードをすると画像のようなエラーが出ます。
今回自作Packageを行ったフォルダー内を確認すると下のようになっています。
|-Assets
| |-GenerateScriptTemplate
| | |-Editor
| | |-Templates
| | |-CHANGELOG
| | |-package.json
| | |-README
| |
| |-Sample
| |-Scenes
| |-この階層にpackage.jsonがない時
ルートディレクトリに存在しないのでpackage.json
があるフォルダーのパスをHTTPS
のリンクの後に追加する必要があります。
HTTPS
のリンクがhttps://github.com/hamster3156/GenerateScriptTemplate.git
だったので、gitの後に?path=ファイルパス
を追加する事でこのエラーを解決する事が出来ます。
-
.meta
がないとPackageをダウンロードした時にエラーが出る
画像を撮り忘れたので申し訳ないです。自分がUPMでダウンロードした時に、.meta
がないファイル、があったのでその時に遭遇したエラーです.meta
を含めたら治るエラーなので、Unity上で一度開いて.meta
が出たら、そののままリポジトリに上げればエラーを解決する事が出来ます。
-
CHANGELOG
やLICENSE
について
まず、CHANGELOG
についてですが手動で更新する物らしいです。(自分調べ)
自分は上の方で紹介した記事を元に真似して書きました。
LICENSE
についてですが、利用規約や二次配布関連の事を書くらしいです。
書き方のテンプレートがあるのか、どうか分からないですが自分の場合必要ないと感じたのでファイルに含めていないです。よく分かっていないので有識者の方教えて下さい!
所感
今回も雑記?みたいな内容ベースになりました...
ただ、ファイル構造を今まで意識した事がない事に気付けて良かった気がします。
今回の自作PackageはGitHub上で管理しているので、エディタ拡張をUpdateした時にUPMの更新を押すだけなので便利だな~と思いました。
その他
READMEファイルに書いたリンクを押してUnityPackageをダウンロードする方法
リポジトリ内で、Add file
→ Upload files
からUnityPackageをリポジトリに上げる
リンクを下のような内容に変更する
https://github.com/自分のリポジトリのリンク/raw/main/ファイルが保存されいる場所のパス/ファイル名
READMEファイルに下のように記述するとできます!
[ここを押してください!](上で変更したリンクを貼る)