インポートファイルで少なくとも一つのユーザプロパティがアタッチされた各々のゲームオブジェクトごとに呼び出しされます
propNames は見つかった全てのプロパティ名を含んだ文字列の配列です。 値は 全ての値を含む System.Object 配列です。 これらの型は string, Vector4, bool, Color, float, int のいずれかです。 この機能の典型的なユースケースは 3ds Max / Maya オブジェクトに格納された "ユーザデータ" の読み出しです。オブジェクトのテキストユーザデータに書かれている内容にもとづき、ゲームオブジェクトを異なる方法で後処理できます。 GameObjects, AnimationClips および Meshes はインポートの際のみに存在し、直後にただちに破棄されることに留意して下さい。 この関数は最終のプレハブが作成される前、そしてディスクに書き込みされる前に呼び出しされるため生成されたゲームオブジェクトおよびコンポーネントに対して完全に制御ができます。 インポート完了後、ゲームオブジェクトまたはメッシュに対する参照は無効になります。 このためインポートされた fbx ファイルの OnPostprocessGameObjectWithUserProperties 以外のファイルから新規のプレハブを作成できません。 次のサンプルではユーザデータの文字列に "addboxcollider" が含まれる場合、シンプルな BoxCollider を追加します。
class MyPostprocessor extends AssetPostprocessor { function OnPostprocessGameObjectWithUserProperties ( go : GameObject, propNames : String[], values : System.Object[]){ for (var i : int = 0; i < propNames.Length; i++) { var propName : String = propNames[i]; var value : Object = values[i]; Debug.Log("Propname: " + propName + " value: " +values[i]); if (value.GetType() == String) { var s : String = value; if (s.Contains("addboxcollider")) go.AddComponent(BoxCollider); } if (value.GetType() == Vector4) { var v : Vector4 = value; // do something useful. } if (value.GetType() == Color) { var c : Color = value; // do something useful. } if (value.GetType() == int) { var myInt : int = value; // do something useful. } if (value.GetType() == float) { var myFloat : float = value; // do something useful. } } } }