Anchor の Strech と Scale の拡大を併用したい
ドット絵でUIを作っていて、素材そのままだと解像度が小さいため素材を2倍の大きさで使いたい場面が多々あります。(つまり、widthやheight を2倍にして要素のサイズを大きくしたいのではなく、 要素に使われているSpriteの素材を大きく表示したい)
これを可変させたい
Anchorのプリセットを選ぶことで任意の方向に可変させることができますが、
例えばScaleが (1, 1, 1)
の場合だと
期待通り引き伸ばされます。
が、Scale が (2, 2, 1)
の場合だと、
上記のように引き伸ばしが効き過ぎておかしなことに。
解決方法
Anchorの横方向stretchプリセットの内容は、 Anchors MinX = 0、 MaxX = 1 です。
これはScaleが 1, 1, 1
のときにいい感じに動きます。
これを 先の例のようにscaleが (2, 2, 1)
で動くようにするには
MinX = 0.25、 MaxX = 0.75 となります。
また (4, 4, 1)
のときは
MinX = 0.375、 MaxX = 0.625 という感じ。
まとめ
横方向に Stretch したい場合、下記の式でいい感じになりました。
(MinY、MaxY も同様)
MinX = 0.5 - 0.5 / (拡大率)
MaxX = 0.5 + 0.5 / (拡大率)
正直Anchorの値はほぼ触らないで開発してきましたがちょっと仲良くなれました。
Anchorっていうとピンとこないけど、 0.5を中心にして伸びる比率 ということかな。
1(or 0) は最大に伸びる、 0.5は伸びない。(ちょっと説明が下手すぎるか。。。
例えばscale4倍で横方向の右側にだけ引き伸ばしたい場合は、pivotも右に固定し、
PivotX = 0, MinX = 0.5、 MaxX = 0.625 でいけます。 (Minは左、Maxは右)