トマシープが学ぶ

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

iPhoneのセーフエリアに対応する

リジェクトされる?

iPhoneXシリーズからホームボタンがなくなった&上にノッチができた。

画面内のホームバーと、ノッチのへこんでいない部分にはUIを置いたらダメなんだって;;

f:id:bibinbaleo:20210406162824p:plain

セーフエリアと呼ばれる場所に置く必要がある><

 確実にリジェクトされるのかな~?よくわからないな

ちょうどノッチのへこんでる部分にUIがはまってて操作しやすかったのに!

developers.wonderpla.net

Unityで確認

UnityのDeviceSimulatorでSafeAreaをオンにしたら表示される

f:id:bibinbaleo:20210406125003p:plain

対応

CanvasとUIの間に、画面いっぱいのStretchにしたRectTransformをはさむ

f:id:bibinbaleo:20210406125654p:plain

f:id:bibinbaleo:20210406162707p:plain

そしてこれの大きさをSafeAreaによって変える。

そのスクリプトはいろいろあったけど、私はこちらのを使った。

eiki.hatenablog.jp

ーーー

追記

ただしAwakeじゃなくてStartにする!!!

上のコードで実機(iPhone12Pro)ビルドしたらセーフエリアに対応しなかった。

こちらの記事通りAwakeじゃなくてStartにしたら直った!Unity2019.4でやってるけどまだバグ直ってないのかな?それとも別かな?

kan-kikuchi.hatenablog.com

ーーー

AssetStoreにもあるみたい。おそらくスクリプトだけなので同じ感じだと思う

nobushiueshi.com

assetstore.unity.com

テラシュールさんにもある

tsubakit1.hateblo.jp


この処理をしたうえで、Playeを押してDeviceSimulatorで見たら、ちゃんとセーフエリア内に収まってた!

f:id:bibinbaleo:20210406163348p:plain

AwakeじゃなくてStartでする!!!

DeviceSimulatorではちゃんと動くけど、実機(iPhone12Pro)ビルドしたらセーフエリアに対応しなかった。

Unity2019.4

全画面

全画面の背景Imageがあったんだけど、これはどうしよう?

SafeAreaオブジェクトの下に入れたら、セーフエリア内に収まって、後ろに隠れてた3Dオブジェクトが見えてしまった><

f:id:bibinbaleo:20210406163437p:plain

 

どうしたらいいんだろう?

SafeArea配下に置かない背景用画像をオンオフするか、そもそも全画面UIのときは、背景をCameraで映さないようにする?

こちらが参考にいなりそう

UGUI以外の部分はカメラをセーフエリア内に移動させてしまえばいいと思います。Viewport Rectを計算してセーフエリアに合わせましょう。カメラを2台用意して帯や枠を全画面に映して、その上にゲーム画面を乗っけるのが一番手っ取り早いかもしれませんね。

dkrevel.com

 

結局、全画面背景画像をSafeArea外で作った。

f:id:bibinbaleo:20210406163708p:plain

もしくは全画面画像だけストレッチから大幅にはみ出させるでも、まあ問題ないかも

 

参考

techblog.kayac.com