結論を書く前に少し前提的な話をさせてくだい。十分という人はこの項目は読み飛ばして大丈夫です。前に、Unityエディター上のインスペクター上へ自動実装プロパティが表示できるようになりました。方法はインスぺクター上にこんな感じで自動実装プロパティに対してSrializeFieldを指定します。fieldを付ける事で、「プロパティ」ついまりsetterとgetterメソッドではなくと背後で自動で作成される見えない変数(バッキングフィールド)に対しSerializedFiedを指定することができます。}で、インスペクター上にこんな感じに表示されます。「{xxxx}k_BakingField」と表示されています。C#が後ろで生成した変数がこのような名前なのでそのまま表示したという感じです。value;}とやっていたのですが特に(2)の方は大したことしない変数へのアクセスを提供するだけの場合記述が冗長で面倒でした。そこで、先述の通り自動実装プロパティにSerialzedFieldを付与してprivateな変数の宣言をなくそうとしたのですが、今度はそうするとインスペクター上の表示がおかしくなるという状態でした。supportこのスクリプトちょっとバグってない?問題点(1)一つ目の問題点は、複雑な構造(具体的には「リスト」とか「配列」、「オブジェクト」)を展開すると展開してもインスペクターで正しく表示されません。}そうするとこんな感じに表示が崩れます。インスペクター上の折りたたみの三角形を展開すると表示が潰れて内容が見えません。内容が重なって表示されています。最後の項目はエディター上の項目が重なって見えないというか存在しません。問題点(2)2つ目の問題点は、2階層目以降の要素は名前がちゃんと表示されない。上記の問題を解決したとして次に問題になるのがこれです。Element2という風に名前がなるところがプロパティの名前に差し替えられています。表示名を指定できる「InspectorAttribute」スクリプトで、上記問題を修正し「InspectorAttribute」を作成したので公開したいと思います。github.comここからダウンロードした中身の「InspectorAttribute.cs」を適当に自分のフォルダに配置します。自動実装プロパティにこんな感じで名前を指定します。List<Test2>();使うとこんな感じに表示されます。2つ問題がありこのアセットを使用しても配列やリストの名前は正しく表示されません。残念ながら配列の親要素の名前はどうやっても指定できないのでこれ以上の改善は無理のようです。ゲームオブジェクト上に関連付ければ正しく動作しますがスクリプトを直接ヒエラルキーから選ぶとやはり表示が変なままです。あとリストを展開するときちょっとエディタが重いです。インスペクターに表示するためだけに通常のC#のコードを冗長にする必要無いと思いますが表示が変なのは気になりますね...結局Unityエディタ側での正式な対応が無いと完全には解決しないのだ思いました。スニペット最後に、上記コードの属性は毎回イピングするのが面倒なのでスニペットを作成しました。ファイルに保存してVisualStudioからスニペットマネージャーでインポートしてください。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。ArticleC#で属性を利用して処理に制約の説明を追加するCocos2d-xをやめてUnityに移行した話@2019冬C#で文字列にSQLのIN句のようなメソッドを追加するC#のDateTimeとC++のtime_tを相互変換するC#の共有メモリで簡単にオブジェクトを共有する方法スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。