LoginSignup
2
0

Unityにテクスチャなどインポートする時に最低限の設定を自動化する

Last updated at Posted at 2023-12-08

導入の話

Unityにテクスチャなどをインポートするときに、
インポートするファイルごとにプラットフォームに合わせた設定を行う必要がある。
これがとてもめんどう。
検索すればある程度まとめて処理できるが、それも面倒。
なので最低限の設定を自動化するライブラリをつくってみました。

機能概要

対象ファイルをインポート時にプラットフォームごとの設定を行います。


ライブラリの公開先

バージョンはver1.1.0(2023/12/04時点)となります
ちまちまアップデートしているので、バージョンは変更されているかもしれません。

対象環境

自動化対象

  • テクスチャ
  • サウンド
  • ビデオ

対象プラットフォーム

  • PC
  • Android
  • iOS
  • tvOS

WebGLにも対応するコードを書いているが、
自動設定の反映処理が動作しないため、非対応とする

ざっくりとした使い方説明

  1. UnityPackageのダウンロード、インポート
    1. https://github.com/syskentokyo/unityautoformatconfig/releases
  2. いつもどおり対象ファイル(テクスチャなど)を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などで共有していこうと思います

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0