導入の話
Unityにテクスチャなどをインポートするときに、
インポートするファイルごとにプラットフォームに合わせた設定を行う必要がある。
これがとてもめんどう。
検索すればある程度まとめて処理できるが、それも面倒。
なので最低限の設定を自動化するライブラリをつくってみました。
機能概要
対象ファイルをインポート時にプラットフォームごとの設定を行います。
ライブラリの公開先
バージョンはver1.1.0(2023/12/04時点)となります
ちまちまアップデートしているので、バージョンは変更されているかもしれません。
対象環境
自動化対象
- テクスチャ
- サウンド
- ビデオ
対象プラットフォーム
- PC
- Android
- iOS
- tvOS
WebGLにも対応するコードを書いているが、
自動設定の反映処理が動作しないため、非対応とする
ざっくりとした使い方説明
- UnityPackageのダウンロード、インポート
- いつもどおり対象ファイル(テクスチャなど)をUnityへインポート
設定について
プラットフォームごとの設定は、設定ファイルで変更できる
設定ファイルはここ
Assets/SyskenTLib/UnityAutoFormatConfig/Editor/Config
また、設定は、フォルダごとにわけることができる
例えばテクスチャは、合計5つの種類の設定できる。
対象のファイルごとのパス設定は、General Configファイルで行うことができる
例えばテクスチャの最大サイズの変更などは、
Assets/SyskenTLib/UnityAutoFormatConfig/Editor/Config/Texture
にあるディクレトリごとの設定ファイルで変更できる
サウンドやビデオの設定はこれ
自動設定のコードについて
とてもシンプル。
インポート時に呼ばれるメソッドを定義し、独自の処理を記載するだけ。
例えばテクスチャなら、AssetPostprocessorを継承したクラスを作成する
OnPreprocessTextureメソッドを継承し、各設定を行っているだけ。
ビデオはちょっと特殊で、
テクスチャのOnPreprocessTextureのように専用のメソッドがない。
そのため汎用的なOnPreprocessAssetメソッドを使う。
そして動画であるかを判定し、設定を行う
void OnPreprocessAsset()
{
if (assetImporter.ToString().Contains("VideoClipImporter")== false )
{
//ビデオ以外だった場合
return;
}
//ここから動画だった場合の処理へ........
おわりに
個人てきには、デモ用にUnityプロジェクトつくる時つかうようにしています。
スマホアプリの場合は、地味にプラットフォームごとの設定をしていないと、負荷が大きすぎることが多いためです。
最近だと、フォトグラ系のテクスチャへ自動設定ができて便利だったります。
他にも便利そうなものちょいちょいつくっています。
https://github.com/syskentokyo/publicunitylibrary
追加で何か作りましたら、Qiitaなどで共有していこうと思います