Unityで自前のパラメータをjosn形式で扱った際にObjectFieldのPickerで選ぶのが大変
初めに
プロジェクトでjsonデータを扱うことがあると思います。
その際にEditorGUILayout.ObjectFieldでPickerでデータを選択する際に
開発序盤ならば選択するものが少ないからいいですが
多すぎて、どれ選べばいいんだよ!(名前ソートして。。。は言わないでねw)
って状態になります。なぜ、このようになるのか?
これを私なりに解決する方法を今回書いてみようかと思います。
なんでこんなにでてくるの?
EditorGUILayout.ObjectFieldのプログラムでTextAssetを設定しています。
TextAsset source = new TextAsset();
source = EditorGUILayout.ObjectField("hoge",source, typeof(TextAsset), true) as TextAsset;
このTextAssetのクラスの親子関係が問題になります。階層を見てみると
Object
┗TextAsset
┗MonoScript
となっています。
MonoScriptは、「スクリプトのAssetを扱うためのクラス」になります。このおかげでPickerを出すと
クラスの親子関係でMonoScriptが選択画面に出てしまいます。なので、開発後半になると大量に出てしまいます。
というわけです。
対処法
私がやった対処法はPickerで検索するする際にオブジェクトにラベルを付けておく
検索対象をタイプだったりいろいろ設定できます。
Unity:Projectウィンドウの検索を使いこなす!
ラベル検索をPickerを開いた時に自動で設定すればいいのでは?
って事で下記の方法使ってラベルを入れました。
プログラムはこんな感じ、
TextAsset source = new TextAsset();
source = EditorGUILayout.ObjectField("hoge",source, typeof(TextAsset), true) as TextAsset;
if (ObjectSelectorWrapper.isVisible)
{
ObjectSelectorWrapper.SetFilterString("l:hoge");
}
これで、json形式のデータを"hoge"と言うラベルをつけておくだけでPickerの選択ウィンドウがすっきりします。
左が対応後、右が対応前
最後に
今回は、アセットの管理方法について書きましたが、私が思いついて対処方なので、
もっと良い方法があったら教えてください。
開発後半になってアセットが大量にあり、管理が大変になります。。。
初めから設計をしっかりしてればよかったな~って思う今日この頃。。
Author And Source
この問題について(Unityで自前のパラメータをjosn形式で扱った際にObjectFieldのPickerで選ぶのが大変), 我々は、より多くの情報をここで見つけました https://qiita.com/kumi0708/items/11efad73868f0d8a0891著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .