Unityで特定のAssetだけ、Textureの圧縮設定などを変えても自身が設定したものではない別の設定が上書きされることがある。

すっかりこの挙動をど忘れしていたのでメモ。

これ、何が起きているかというと、Unityは特定の命名規則で名前をつけた画像などのAssetに関して、Import時に特定の設定を適用するという仕組みがある。(AssetPostprocessorのデフォルト実装)

圧縮設定などを変更すると、AssetはReloadされるので、これが発動してしまう。

故に、いくら手動設定しても上書きされてしまうと。

対処方法としては、そういう文字列やパターンでAsset名をつけない、、という手だ。
(もしくは、自分でAssetPostProcecessorを継承したクラスを定義して、デフォルト挙動を無効化する)

多少厄介なのは、AssetStoreで購入したAssetがこの手のスクリプトを含んでいることがある、、というところ。

良かれと思って実装されているのだろうが、Asset間で干渉するのでとても厄介。注意しよう。

ということなので、自前でそういう実装するときは、名前+任意のプレフィックスとかで判定して、Asset干渉を避けるようにしましょう。

Previous Post Next Post

UnityのAsset命名規則と自動Import処理の罠