トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

XDで作った素材をUnityのuGUIで指定の位置で配置するには・・・?

位置

XDのコンポーネントのX,Yはコンポーネントの左上&アートボードの左上との距離。

f:id:bibinbaleo:20200520152859p:plain

UnityのuGUIのPosX,PosYはデフォルトだと素材の真ん中&Canvasの左上の距離

f:id:bibinbaleo:20200520153112p:plain

まずそこが違う。

Unityで素材の原点(Pivot)を変えるにはUnityEditor左上をPivotにする。

f:id:bibinbaleo:20200520152830p:plain

右上が(x:1, y:1)左下が(x:0, y:0)らしいので、左上を原点にするにはX0Y1にする

f:id:bibinbaleo:20200520152828p:plain

UnityのuGUIのレイアウト調整機能について解説してみる(RectTransform入門) - テラシュールブログ

そのうえでAnchorPresetを左上にすると一応あう。ただしPosYはマイナスにしないといけない。

f:id:bibinbaleo:20200520153356p:plain

スクリプトで変更する場合はこちらが良さそうです

qiita.com

おまけ:canvasの描画順

この記事が分かりやすい

creator.game.cyberagent.co.jp

ただ私が苦しめられている謎の描画順の謎は解明しなかった。

関係あるとしたら下記の謎ぐらいかな・・・?

カメラ系のCanvasにおいて、Order in Layerまでの全てのパラメータが等しいとき、カメラからのUIの距離によってCanvasの描画順が決まります。これに関しては実験によって試した結果でしかないのですが、Canvasの配下のUIとカメラの距離の最小と最大の中点を代表のz値としたとき、z値が小さい方が手前に描画されるようです。

CanvasCheckerはとても良い!

github.com

developer.aiming-inc.com