UnityのスクリプトでUIを最前面や最背面に移動する方法

UnityのCanvas内に複数のUIがある場合、Hierarchyの順に重なって表示されるようになっています。 これを前面や背面に移動させたい場合は、Transform.SetAsLastSiblingTransform.SetAsFirstSiblingを使うと良いそうです。

// 最前面に移動
GetComponent<RectTransform>().SetAsLastSibling();

// 最背面に移動
GetComponent<RectTransform>().SetAsFirstSibling();

細かく順番を指定したい場合はTransform.GetSiblingIndexTransform.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を実行します。 ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です