Shufumin日記

のんびりデザイナー続けているひとの雑記ブログです

【uGUI】画像を反転:RotationとScale違い

f:id:yuumin5220:20200829160228j:plain
uGUIでSprite画像を左右反転させたときの失敗談と学んだことを書きます。

課題:画像を左右反転させたい!

f:id:yuumin5220:20200128191934p:plain

やったこと:Rotationの値を変える

f:id:yuumin5220:20200128183104p:plain

Rotationのx,Zの値を180にしたら良いんじゃね


f:id:yuumin5220:20200128185010p:plain
矢印の見た目はイメージ通り左向きに変更できたのでシーン再生したのですが、
事件発生:ボタンタップに反応しなくなった
・ほかの要素の当たり判定を確認→異常なし
・Rotationの値を変更したのが原因と判明

解決策:Scaleの値を変更

Scale Xの値を-1にすると、ボタンが反転されて、シーン再生後も
タップに反応するようになりました。ボタンの機能も復活。
ここで私は疑問に思ってしまいました。

f:id:yuumin5220:20200128183104p:plain

画像の見た目はRotationもScaleも問題なかったのに、
なぜRotationの時はタップ反応しなくなったんだろう。

何が変化するのか調査

・A:Rotation X,Z値を180にしたときの画像
・B:何の値も入力していない状態の画像(Bをベースに変化を見る)
・C:Scale X値を-1にしたときの画像
f:id:yuumin5220:20200128194612p:plain

正解かわかりませんが、私が予想する答えは以下。

なぜRotationを変更したらボタンが無反応になったのか
Rotation
・値を変更→X,Y,Z軸(マニピュレーター)に変化あり。
UI全体(imageとSprite)が反転、裏返しになった
→画像は反転できるが、タップしても反応できない状態になったのではないか。
値を変更しても特にエラーが出たりするわけでもないので、要注意

Scale
・値を変更→X,Y,Z軸に変化なし
Spriteのみ反転できる→画像の反転もできるし、タップにも反応できた。