ScreenPocket - 画面の隙間

Unityエンジニアの日々の雑記。たまにpython3、DirectX、PhotoshopScript(JavaScript)も触ります

Assetを作った時のコールバック

特定のフォルダ以下にAssetを追加した時にアセットバンドル名を自動で指定する仕組みをAssetPostprocessor.OnPostProcessAllAssets()で作ったのですが、それだとどうにも対応できない事があって悩んでいました。

http://docs.unity3d.com/ja/current/ScriptReference/AssetPostprocessor.OnPostprocessAllAssets.html

というのもAssetPostprocessor.OnPostProcessAllAssets()だと渡される引数が

  • Importした時(importAssets)
  • 消した時(deletedAssets)
  • 移動した時(movedAssets)
  • 何処から移動してきたのか(movedFromAssetPaths)

だけだったので、じゃあAssetをCreateした時はどうすんのよ。Reimportしなきゃいかんの?と悩んでいましたが AssetModificationProcessor なるものがある様子。

http://docs.unity3d.com/ja/current/ScriptReference/AssetModificationProcessor.html

OnWillDeleteAsset()とOnWillMoveAsset()はPro版でないと使えないようだけど、OnWillCreateAsset()を使えば上記の対応はできそうかも??

また試してみよう。