SlideShare a Scribd company logo
1 of 55
Download to read offline
uGUIのRectTransformを
さわってみた
@Unity Fukuoka vol.6
2014/12/20 k_nagamine
自己紹介
ながみね けいぞう
@KzoNag
Jollystics Inc.
ゲームとかアプリとか
C#,C++
Unity,Xamarin
話すこと
uGUIのRectTransformのこと
・主にAnchorとPivotについて
・スクリプトからもさわってみる
話さないこと
uGUIのそれ以外のこと
注意事項
僕もさわりはじめたばかりなので
間違ってたら教えてください
RectTransform
これ
これ
RectTransform
UI関連のオブジェクトを作ったらある
いつもはTransformがついてるところにある
“The Rect Transform component is the
2D counterpart of the Transform
component used with 3D graphics.
It is used to specify the size, position
and rotation of controls in the UI
system”
http://docs.unity3d.com/Manual/class-
RectTransform.html
UIのサイズとか決めるやつ
3DのTransformに相当するよ
そのままですね
RectTransform
AnchorとかPivotをうまく設定して
解像度の違うデバイスでも柔軟な表示ができる
RectTransform
Transformを継承
var rectTrans = transform as RectTransform
とかできる
UnityEngine名前空間
実際にさわってみる
SceneView
Pivot(青い丸)
Anchor(4つの三角)
Inspector
AnchorPresets
PosX,PosY,Width,Height?
Left,Right,Top,Bottom?
Anchor
Pivot
Rotation, Scale
blue print mode
raw edit mode
Pivot
Position,Scale,Rotationの基準位置
Anchor
親要素との位置関係に関する比率を定める
0 1
X軸について
Min X, Max XでAnchorの位置を設定
Min X Max X
0 1
X軸について
親のサイズが変わっても
a : b : c
が一定に保たれるように拡縮する
a b c
0 1
X軸について
位置・サイズの設定は2パターン
(1) b != 0 → Left, Right
(2) b = 0  → PosX, Width
a b c
(1) b != 0 → Left, Right
0 1
Left = 左Anchorからの距離
Right = 右Anchorからの距離
これらの値は固定
Left Right
(1) b != 0 → Left, Right
0 1
Left Right
Width
Left = 左Anchorからの距離
Right = 右Anchorからの距離
これらの値は固定
0 1
Left Right
a = 0, c = 0
→親のサイズに関わらず左右の幅が固定
Width
(1) b != 0 → Left, Right
(1) b != 0 → Left, Right
0 1Width
Left = 0, Right = 0
→親のサイズに対する比率が一定
(2) b = 0 → PosX, Width
0 1
PosX = AnchorからPivotまでの距離
Width = オブジェクトの幅
これらの値は固定
PosX
Width
(2) b = 0 → PosX, Width
0 1
PosX = AnchorからPivotまでの距離
Width = オブジェクトの幅
これらの値は固定
PosX
Width
Y軸も同じ
まとめると
Min X, Y
Max X, Y
Min X, Y
Max X, Y
Left Right
Top
Bottom
Min X, Y = Max X, Y
PosX, PosY
Width
Height
Min X, Y = Max X, Y
AnchorPresetsが分かる!
使いそうなパターン①
固定の位置・サイズ
使いそうなパターン②
上下左右の幅が固定
使いそうなパターン③
左右と上の幅を固定、高さは一定
使いそうなパターン④
親との比率を維持
+α
使いそうなパターン④
親との比率を維持
→サイズをアンカーに合わせるときに吸着
→一度アンカーに合わせれば+Shiftで調整
→アンカーをサイズに合わせたいときは?
Anchorを
フィットさせる
Editor Script
RectTransformの変数
(※僕なりの解釈なので正確じゃないかも)
anchoredPosition:AnchorからPivotまでの位置
anchoredPosition3D:AnchorからPivotまでの位置(3D)
anchorMax:右上のAnchorの値
anchorMin:右下のAnchorの値
offsetMax:右上Anchorからオブジェクトの右上の角へのオフセット
offsetMin:左下Anchorからオブジェクトの左下の角へのオフセット
pivot:Pivot位置
rect:Pivotを原点とした時のオブジェクトの矩形
sizeDelta:オブジェクトのサイズとAnchorのサイズの差
LeftPos
RightPos
ParentWidth
MinX = LeftPos / ParentWidth;
MaxX = Right / ParentWidth;
Left = 0;
Right = 0;
で実現できそう
こんなかんじになりました
Anchorをオブジェクトサイズに合わせる
MenuItemから使用
ホットキー
複数選択
Undo
(GitHub)
https://gist.github.com/KzoNag/8bfb227585481048147d
余談
RectTransformの変数を表示する
デバッグメニューみたいなのも作ってみた
もっと便利に①
Shift押しながら移動でAnchorも追従
→すぐにはできなかった。。。
RectTransformのInspectorはすでに拡張されてる
それを維持したまま+αで拡張できる?
もっと便利に②
レイアウト定義ファイルから生成もできそう
XMLとか
.psd → .png/.xml → オブジェクト生成
参考になる記事
UnityのuGUIのレイアウト調整機能について
解説してみる(RectTransform入門)
http://tsubakit1.hateblo.jp/entry/
2014/12/19/033946
(昨日アップされてました)
ありがとうございました

More Related Content

Similar to uGUIのRectTransformをさわってみた

10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later 10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later Hideki Ohkubo
 
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しようOrigami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しようkoji kobayashi
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話Masayoshi Kamai
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...Unity Technologies Japan K.K.
 
Prottで変える開発プロセス
Prottで変える開発プロセスProttで変える開発プロセス
Prottで変える開発プロセスTakumi Kai
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementationsmasahitojp
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前Hiroshi Yamato
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?Masahito Zembutsu
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobileyusuke shibui
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようcch-robo
 
AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例Kenichi Kambara
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Naoki Umehara
 
Unity&monodevelopでブレークポイント
Unity&monodevelopでブレークポイントUnity&monodevelopでブレークポイント
Unity&monodevelopでブレークポイントRyohei Tokimura
 
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れようAndroidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れよう kan-notice
 
今更はじめるQuartz Composer
今更はじめるQuartz Composer今更はじめるQuartz Composer
今更はじめるQuartz Composer祐磨 堀
 
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法 クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法 Hiroki Yata
 

Similar to uGUIのRectTransformをさわってみた (20)

10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later 10年後になくなる仕事 / Jobs which will disappear 10 years later
10年後になくなる仕事 / Jobs which will disappear 10 years later
 
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しようOrigami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
Origami studio (ver2) 勉強会 #2 - 仕組みやコンセプトを理解しよう
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~Entity Compon...
 
Prottで変える開発プロセス
Prottで変える開発プロセスProttで変える開発プロセス
Prottで変える開発プロセス
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
TFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_MobileTFLite_and_PyTorch_Mobile
TFLite_and_PyTorch_Mobile
 
Swift gesture
Swift gestureSwift gesture
Swift gesture
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例AndroidアプリのUI/UX改善例
AndroidアプリのUI/UX改善例
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
Unity&monodevelopでブレークポイント
Unity&monodevelopでブレークポイントUnity&monodevelopでブレークポイント
Unity&monodevelopでブレークポイント
 
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れようAndroidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
 
Ll tiger clojure
Ll tiger clojureLl tiger clojure
Ll tiger clojure
 
今更はじめるQuartz Composer
今更はじめるQuartz Composer今更はじめるQuartz Composer
今更はじめるQuartz Composer
 
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法 クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法
クロスプラットフォームはまだ早い!既存のアプリをクロスプラットフォームっぽくする方法
 

uGUIのRectTransformをさわってみた