重くなるUnity 29 GUILayoutとC#Document 「エクステンド!!3」
今回はGUILayoutなどを使ってEditorを編集します。また、+α(C#のDocument)についても説明します。
Script : KplaMeshEditor
一応のGUIの予定です。ちょっと動作に問題があるかもしれません。
Debug.Logを入れたおかげでちょっとCosoleがうるさいかもしれません。とりあえずなので、、、
解説
fieldにはGUIで必要なものを入れました。
そして、OnGUI()まで飛ぶと、かなり綺麗になっています。これは、OnGUI()の中を作った関数で処理することでOnGUI()に汚く書く必要がなくなるからです。また、その関数のEditor()でも中は関数をよく使っています。こうすることで綺麗になります。
まず、GUILayoutを使うことで自動的なレイアウト済のGUIを追加できるのですが、どんなGUIが追加できるのかは
Unity - マニュアル: Controls (Legacy)ここに載ってます。日本語です。
また、GUILayoutと同じようにEditorGUILayoutもあります。これはGUILayoutをEditorようにも使えるようにしたものです。中身が違いますが
Unity - スクリプティング API: EditorGUILayoutここに載ってます。ただ(ほぼ)全部英語です。Google翻訳でも使ってください。
EditorGUILayoutの使い方が、
Value(IntやMeshなど) = EditorGUILayout.~~~(value,other~~);
みたいになっているのは、EditorGUILayoutの返り値がValueの型だからです。
返り値(戻り値とも)というのは、基本的にメソッドを読んだ時に返される*1値を言います。返り値はメソッドを定義するとき、
返り値 名前(値1...)
という風にします。今まで、返り値には大体 void を使っていました。voidは返り値なしということです。(前にも説明したかも)
飛んで、AddPartsに行くとGUILayout.BeginHorizontal ();というものがあります。これは、Horizontal(平行、x軸に沿った)にレイアウトするものの始まりを意味し、EndHorizontalで終わります。
また、+αのC# Documentは、そのメソッドが何を意味しているのかというものをDocumentとして表示できるようにしたり、Buildしてくれます。例えば、AddPartsを
使いたいけど何かがわからないから、調べたいという時にAddPartsにDocumentをつけていれば何なのかがマウスでFocus(フォーカス、重ねあわせる)と出てきて分かる。という感じです。
C#のDocumentは
/// <xxxxx> ~~~~ </xxxxx>
という風にします。/を3つつければそれはDocumentになります。また、<>の中に特定の言葉を書けば、それも表示されます。<>には、summary(説明),param(引数の説明),return(返り値の説明),...といったものが有ります。
実行
このようにして実行すると、、、
こんな風になります。今度はそれぞれを関連付けるようにしたいと思います。