最初に
Gizmos.DrawGUITextureを使ったが挙動に癖があった。
Gizmosの中で唯一TextureをSceneView上に貼り付けられるが、使用できる用途が限られているように感じた。
結論からいうと、SceneView上でUI要素に対して使うのが主な用途だと思う。
それ以外はかなり難しそう。
こちらで確認した動作をここにまとめておく。
動作の確認は Unity 2021.3.19f1 で行った。
screenRect引数は整数値
関数の引数にscreenRectというRect型の引数があるが、
実際には座標や幅、高さがint型に直されて使われる。
このため最小サイズが決まっている。
ScreenSpaceに表示される
ScreenSpaceとはUIが表示される場所のこと。
具体的にはCanvasを新規作成したときに表示される場所。
(普通のゲームオブジェクトに対してやたらデカく表示されるやつ)
なので、基本的な使い道はSceneViewでUI要素に対して使うこと。
GameView上で見た時の挙動が不思議
ちなみにGizmoはGameView上でも表示できる。
Gizmos.DrawGUITextureで貼り付けたTextureもGameView上で表示できる。
しかしScreenSpace-Overlayのようにカメラ上に勝手に表示されない。
わざわざカメラで撮影しに行く必要がある
設定するときの座標はScreenSpaceに準拠しているが、実際にはWorld空間にいる扱いのようだ。
(ScreenSpace-Overlayのように扱えれば、もっと使い道があるのに……)
挙動について補足があればコメントよろしくお願いします。