GUIの横幅をマウスのドラッグで変更する
UnityでEditor拡張機能を作っていると、LabelFieldやTextFiledなどGUIでwidthが足りなくて見きれてたりして、何て書いてあるか分からない時がある。
windowの横幅を取得してその何%とかで指定すれば割と動的にできる。
今回はマウスでドラッグしてTextFieldなどのGUIの横幅を調整できる様にしてみた。
まずこんな感じのGUIを作ってみた。下の方のヤツは左側が見切れている。
TextFieldの間にマウスを移動させるとカーソルが変わる。コレは
EditorGUIUtility.AddCursorRect(r, MouseCursor.ResizeHorizontal);
でカーソルを変更させている。
マウスを左右にドラッグさせると左側のGUIの横幅が変わる。下のやつも見えた。
ちょっと書くのメンドイけど動的に変えられるのはちょっと便利かも。
もっとイイ書き方もできるか。
今回使用したスクリプト。
Asset Store申請用のテンプレート画像について
申請用のテンプレ画像のZipファイルにキー画像の説明pngファイルが追加されていた。
キー画像、3種類。見えない部分が赤色のところかな。
Inspectorで表示される変数の文字列に変換する
Unityでは変数名をインスペクター上に表示すると自動的に見やすくしてくれる。
小文字と大文字の間にスペースを入れてくれたり、変数名の頭が「_」や「m_」、「k」で始まる場合は自動的に除いてくれる。
ObjectNames.NicifyVariableNameは文字列をこのルールに従って変換してくれる。
string[] list = { "_myValue1", "m_myValue2", "kMyValue3" }; string output = ""; foreach (string temp in list) output += temp +"=>"+ObjectNames.NicifyVariableName(temp) + "\n"; Debug.Log(output);
これを実行すると、インスペクトーに表示されるものと同じ値が取得できる。
_myValue1=>My Value 1 m_myValue2=>My Value 2 kMyValue3=>My Value 3
正直、利用シーンは思いつかないけど。。。
何かに役立つかな。
http://docs-jp.unity3d.com/Documentation/ScriptReference/ObjectNames.NicifyVariableName.html