すぐに固まるパソコンを使う。

すぐに固まるパソコンを使って色々します(実はそんなすぐでもない)。基本的にプログラミング系が多いです。たまに違うことします。

Immediately Freeze!

重くなるUnity 29 GUILayoutとC#Document 「エクステンド!!3」

今回はGUILayoutなどを使ってEditorを編集します。また、+α(C#のDocument)についても説明します。

Script : KplaMeshEditor

一応のGUIの予定です。ちょっと動作に問題があるかもしれません。

gist.github.com

Debug.Logを入れたおかげでちょっとCosoleがうるさいかもしれません。とりあえずなので、、、

解説

fieldにはGUIで必要なものを入れました。

そして、OnGUI()まで飛ぶと、かなり綺麗になっています。これは、OnGUI()の中を作った関数で処理することでOnGUI()に汚く書く必要がなくなるからです。また、その関数のEditor()でも中は関数をよく使っています。こうすることで綺麗になります。

 

まず、GUILayoutを使うことで自動的なレイアウト済のGUIを追加できるのですが、どんなGUIが追加できるのかは

Unity - マニュアル: Controls (Legacy)ここに載ってます。日本語です。

また、GUILayoutと同じようにEditorGUILayoutもあります。これはGUILayoutEditorようにも使えるようにしたものです。中身が違いますが

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

使いたいけど何かがわからないから、調べたいという時にAddPartsDocumentをつけていれば何なのかがマウスでFocus(フォーカス、重ねあわせる)と出てきて分かる。という感じです。

C#のDocument

/// <xxxxx> ~~~~ </xxxxx>

という風にします。/を3つつければそれはDocumentになります。また、<>の中に特定の言葉を書けば、それも表示されます。<>には、summary(説明),param(引数の説明),return(返り値の説明),...といったものが有ります。

 

実行

このようにして実行すると、、、

f:id:norlself66:20150405082702p:plain

こんな風になります。今度はそれぞれを関連付けるようにしたいと思います。

*1:返されるというのは例えば、引数というのが本体がメソッドへ送るものでしたが、逆にメソッドが本体へ値を送り返すという形のものです。