uGUIでSprite画像を左右反転させたときの失敗談と学んだことを書きます。
課題:画像を左右反転させたい!
やったこと:Rotationの値を変える
Rotationのx,Zの値を180にしたら良いんじゃね
矢印の見た目はイメージ通り左向きに変更できたのでシーン再生したのですが、
事件発生:ボタンタップに反応しなくなった
・ほかの要素の当たり判定を確認→異常なし
・Rotationの値を変更したのが原因と判明
解決策:Scaleの値を変更
Scale Xの値を-1にすると、ボタンが反転されて、シーン再生後も
タップに反応するようになりました。ボタンの機能も復活。
ここで私は疑問に思ってしまいました。
画像の見た目はRotationもScaleも問題なかったのに、
なぜRotationの時はタップ反応しなくなったんだろう。
何が変化するのか調査
・A:Rotation X,Z値を180にしたときの画像
・B:何の値も入力していない状態の画像(Bをベースに変化を見る)
・C:Scale X値を-1にしたときの画像
正解かわかりませんが、私が予想する答えは以下。
なぜRotationを変更したらボタンが無反応になったのか
Rotation
・値を変更→X,Y,Z軸(マニピュレーター)に変化あり。 UI全体(imageとSprite)が反転、裏返しになった
→画像は反転できるが、タップしても反応できない状態になったのではないか。
値を変更しても特にエラーが出たりするわけでもないので、要注意
Scale
・値を変更→X,Y,Z軸に変化なし
Spriteのみ反転できる→画像の反転もできるし、タップにも反応できた。
Rotation
・値を変更→X,Y,Z軸(マニピュレーター)に変化あり。 UI全体(imageとSprite)が反転、裏返しになった
→画像は反転できるが、タップしても反応できない状態になったのではないか。
値を変更しても特にエラーが出たりするわけでもないので、要注意
Scale
・値を変更→X,Y,Z軸に変化なし
Spriteのみ反転できる→画像の反転もできるし、タップにも反応できた。