UnityのCanvas内に複数のUIがある場合、Hierarchyの順に重なって表示されるようになっています。 これを前面や背面に移動させたい場合は、Transform.SetAsLastSibling
やTransform.SetAsFirstSibling
を使うと良いそうです。
// 最前面に移動
GetComponent<RectTransform>().SetAsLastSibling();
// 最背面に移動
GetComponent<RectTransform>().SetAsFirstSibling();
細かく順番を指定したい場合はTransform.GetSiblingIndex
やTransform.SetAsLastSibling
が使えるようです。
int index = GetComponent<RectTransform>().GetSiblingIndex();
GetComponent<RectTransform>().SetAsLastSibling(index);
リンク
Unity – Scripting API: Transform
https://docs.unity3d.com/ScriptReference/Transform.html
関連記事
UnityでマウスがUI上にあるかどうかチェックするスクリプト
Unityでは、Physics.Raycastを使ってマウスがオブジェクト上にあるかどうか調べることができます。
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) {
// 処理したい内容
}
ただし、上...
TextMesh Proで使えるタグ
UnityのTextMesh Proは少し前から無料になったので、使っている人も多いと思います。
TextMesh Proの便利な機能の1つにタグを使ったテキストの装飾があるのですが、HTMLとは少し違うので使い方をすぐに忘れてしまいます。
ということで、よく使うタグをまとめてみました。
<color="green">緑色</color>
<color="#0...
UnityのUIでフォーカスを移したい場合はSetSelectedGameObject
UnityのUIを使っていて、フォーカスを変えたい場合はEventSystem.SetSelectedGameObjectを使ってみると良いみたいです。
使い方
EventSystem.current.SetSelectedGameObject(gameObject);
Canvasを2重に表示していて、後ろ側になっているCanvasのボタンにフォーカスがある場合など、一見不可...
TextMesh ProにSpriteを表示する方法
TextMesh ProはUI上にテキストを表示するAssetですが、タグを使って画像を表示することもできます。
手順としては次のような感じです。
1. 表示したい画像ファイルを読み込み、Sprite ModeをMultipleに設定します。
2. Spriteを右クリックしてCreate » TextMeshPro » Sprite Assetを実行します。
...