Unityのテンプレートを自分で作る
Unityを使ってて「これ出来ないか?」と思うことの一つで、色々なアプリを作るときにデフォルトで入れたいものが色々なものが在ります。 Templateの選択(UnityHub2.0)
Unityで新たなProject を作るときのテンプレートをオリジナルで
The method is easy, it is written here:
https://forum.unity.com/threads/will-we-be-able-to-define-our-own-templates.514093/#post-4212130
If you can do it, there is no need to read this, good luck!
というわけで、元ネタは別にあるのですが「わかんねーし」という方、続きをどうぞ。
Templateはどこに在るのか
先ずはTemplateがどこに在るのか、観ていきましょう。WindowsでCドライブにProgramFilesの在る、標準的な構成で特に設定を変えずにUnityをインストールした場合は、以下に存在します。
2018.3.1f1の場合はこうなります。
C:\Program Files\Unity\Hub\Editor\2018.3.1f1\Editor\Data\Resources\PackageManager\ProjectTemplates'
バージョンによって変わるときがあるので、特定のバージョンの所在を辿りたい場合、UnityHubで指定のUnityのバージョンの…から辿れます。 選ぶとエクスプローラーで表示されます。
ここの配下から、
Editor\Data\Resources\PackageManager\ProjectTemplates
までたどりましょう。
Templateの構成
ここに並んでいるフォルダのそれぞれがテンプレートになります。
フォルダの中身はほぼ通常のプロジェクト
中をのぞくと、お馴染みのフォルダの中身と大差ないのが判ります。
ここでちょっと見かけないのが、package.jsonです。
Templateはpackageになっている
このファイルはpackageの定義に使われるもので、Templateはプロジェクト全体を抱合したpackageとなっています。それでは中身を見てみましょう。テキストファイルなので適宜、エディタで開いてください。
以下は、com.unity.template.3d
の場合です。
{ "name": "com.unity.template.3d", "displayName": "3D", "description": "", "defaultScene": "Assets/Scenes/SampleScene.unity", "version": "1.0.4", "category": "ProjectTemplate", "dependencies": {} }
この内容の詳細は、こちらが参考になると思います。
ということでTemplateとしてのパッケージをどうするのか、という考えで作っていきましょう。
既に在るものを複製してつくってみよう
試しに、既に存在するものを複製し、適宜、編集して作ってみましょう。これが冒頭で紹介したこちらの方法です。
https://forum.unity.com/threads/will-we-be-able-to-define-our-own-templates.514093/#post-4212130
[1] フォルダごと複製する
ここではcom.unity.template.3d
を例にとってやってみます。エクスプローラーでコピー・ペーストします。このときにアクセス権が必要になります。通常、このフォルダはuserが触ることを想定していませんので、あくまで自己責任でおねがいします。異常が認められたらUnityの再インストールが好いと思います。
コピーした状態です。
[2] フォルダ名を変える
次にフォルダ名を変更します。今回はcom.unity.template.original3d
に変更しました。
命名には規則があり、com.unity.template
は変えず、その後ろだけ変更してください。
[3] 不要なファイルの削除
今回は直接、他の既成packageを生成しているので、元のpackageの情報は正しくありませんので、一応、消去しておきます。 消した後はこうなります。
[4] package.jsonの編集
オリジナルにした部分を変更します。今回はname
とdisplayName
を変更しました。このとき、フォルダのアクセス権が無いと保存できませんので適宜、取得してください
{ "name": "com.unity.template.original3d", "displayName": "original3d", "description": "", "defaultScene": "Assets/Scenes/SampleScene.unity", "version": "1.0.0", "category": "ProjectTemplate", "dependencies": {} }
[5] UnityHubで確認
UnityHubで表示されるか、確認し、プロジェクトを作ってみてください
[6] テンプレートのカスタマイズ
データは通常のプロジェクトに在るものと変わりませんので、シリアライズされたテキストデータ群が適宜、所定のフォルダに収まっています。エディタで編集すればそれが反映されます。ただし、内容が明確に開示されていないものや、実際にエディタがデータを展開時に上書きされる部分もあり得るため、手っ取り早いのは、一度、設定したい部分だけを作りこんでから、そのプロジェクトのデータを書き戻すのが楽だと思います。Assetフォルダに在るものはそのままコピーされます。所定のパッケージを取り込む等は試していません、少し工夫は要ると思います。
[7] 注意事項と補足
この手順はインストールされたフォルダの操作を伴うので、注意してください。
公式で動作保証もされていませんし、当方も責任を負いかねますので、自己責任でハックしてください。
Hubで表示したときにアイコンで出ますが、そこのカスタマイズ方法は調べていません。やり方が分かったら教えてほしいですw