GUI」タグアーカイブ

UnityのUIでフォーカスを移したい場合はSetSelectedGameObject

UnityのUIを使っていて、フォーカスを変えたい場合はEventSystem.SetSelectedGameObjectを使ってみると良いみたいです。

使い方

EventSystem.current.SetSelectedGameObject(gameObject);

Canvasを2重に表示していて、後ろ側になっているCanvasのボタンにフォーカスがある場合など、一見不可解な現象が起こる場合もあるので、注意して使ってみてください。

リンク

Unity – Scripting API: EventSystems.EventSystem.SetSelectedGameObject
https://docs.unity3d.com/2018.2/Documentation/ScriptReference/EventSystems.EventSystem.SetSelectedGameObject.html

TextMesh Proで使えるタグ

UnityのTextMesh Proは少し前から無料になったので、使っている人も多いと思います。

TextMesh Proの便利な機能の1つにタグを使ったテキストの装飾があるのですが、HTMLとは少し違うので使い方をすぐに忘れてしまいます。

ということで、よく使うタグをまとめてみました。

<color="green">緑色</color>
<color="#0000FF">青色</color>
<alpha="#aa">透明度</alpha>
<b>ボールド</b>
<i>イタリック</i>
<u>アンダーライン</u>
<size="200%">拡大と縮小</size>
<align="center">センタリング</align>

それ以外についてはリンク先などを参照してみてください。

リンク

TextMesh Pro User Guide
https://docs.unity3d.com/Packages/[email protected]/manual/index.html

Rich Text, TextMesh Pro Documentation
http://digitalnativestudios.com/textmeshpro/docs/rich-text/

文字列に合わせたUI.Textのサイズを取得する方法

UnityのUI.Textで、実際にテキストを表示した際のサイズが知りたい場合はpreferredWidthpreferredHeightを使って調べることができるそうです。

使い方

Text text;

float width = text.preferredWidth;
float height = text.preferredHeight;

テキストのサイズに合わせてUIを調整したい場合に便利かなと思います。

TextMeshPro

TexhMeshProの場合もpreferredWidthpreferredHeightを使って実際のサイズを調べることができるようです。

使い方

TMPro.TextMeshProUGUI text;

float width = text.preferredWidth;
float height = text.preferredHeight;

リンク

Unity – Scripting API: ILayoutElement
https://docs.unity3d.com/ScriptReference/UI.ILayoutElement.html

Class TextMeshProUGUI | TextMeshPro | 1.5.6
https://docs.unity3d.com/Packages/[email protected]/api/TMPro.TextMeshProUGUI.html