Unity6でiOSでスマホを縦横回転させた時の挙動が滑らかになった話です。
Unity2022.3.28f1
Unity6000.0.27f1
iPhone13 / iOS18.5
スマホを縦横回転させた時の挙動が滑らかになった話
iOSのネイティブアプリでは、スマホの縦横を回転させると、画面もスムーズに回転しながら切り替わります。
これに対してUnityで作ったアプリでは、画面が回転せずに1フレームでパッと切り替わってしまうことがありました。
この挙動は特にプログラムから画面回転を制御する時に顕著だったように思います。

Unity6ではiOSの画面を縦横回転させた時の挙動が滑らかになりました。
リリースノートに明記はされていませんでしたが、手元のプロジェクトのUnityバージョンを上げていて気づきました。

挙動確認用の実装
この挙動を確認するために適当なシーンを作成し、以下のスクリプトを適当なGameObjectにアタッチして3秒ごとに回転させました。
using System.Collections; using UnityEngine; public class Example : MonoBehaviour { private const float ToggleInterval = 3f; private void Start() { Screen.autorotateToPortrait = true; Screen.autorotateToPortraitUpsideDown = false; Screen.autorotateToLandscapeLeft = true; Screen.autorotateToLandscapeRight = true; Screen.orientation = ScreenOrientation.LandscapeLeft; StartCoroutine(ToggleOrientationCoroutine()); } private IEnumerator ToggleOrientationCoroutine() { // 3秒ごとに画面の向きを切り替える while (true) { yield return new WaitForSeconds(ToggleInterval); ToggleOrientation(); } } private void ToggleOrientation() { if (Screen.orientation == ScreenOrientation.LandscapeLeft) Screen.orientation = ScreenOrientation.Portrait; else Screen.orientation = ScreenOrientation.LandscapeLeft; } }
結果
これを適当なGameObjectにアタッチし、新旧バージョンのUnityで挙動を比較したところ以下のポストの通りの結果が得られました。
← Unity2022.3 / Unity6 → https://t.co/Mw52en051o pic.twitter.com/J9IwwTdJpX
— Haruki Yano / Haruma-K (@harumak_11) 2025年8月23日
明らかに滑らかに画面が回転していることを確認できました。