Skip to content
iPhone Duo SupportGet help

Unity on iPhone Duo

No first-party support. Screen.safeArea works, but mid-session resolution changes and fold-driven lifecycle events need explicit handling.

Engineering analysis, not vendor guidance

Unity has not shipped iPhone Duo support or published guidance for it. Everything below is our analysis of how Unity behaves against the APIs and behaviours Apple has documented. Treat the Apple-side facts as authoritative and the Unity-side conclusions as reasoned inference to verify against your own app.

Unity has shipped no iPhone Duo support. What follows is our analysis of how a Unity iOS build behaves against Apple’s documented behaviours.

Games have a harder problem than apps here, because a game usually renders to a fixed-aspect surface and treats resolution as a launch-time constant.

Resolution changes while running

On iPhone Duo, Screen.width and Screen.height change during play — when the device is folded or unfolded, when the app moves between displays, and when Split View is resized. Anything cached at Start() is stale from that moment.

// Poll for changes rather than caching once
void Update() {
    if (Screen.width != _lastW || Screen.height != _lastH) {
        _lastW = Screen.width; _lastH = Screen.height;
        RebuildLayout();
    }
}

Camera viewport rects, canvas scalers, and any render texture sized from screen dimensions all need recomputing on that event.

Safe area

Screen.safeArea is the right API and it works. The trap is the same as native: code that takes one horizontal inset and applies it to both edges. On iPhone Duo the two differ, so use the rect directly rather than deriving a single margin from it.

Aspect ratio

The inner display is roughly 1.42 — much squarer than the 2.17 most mobile games are tuned for. A game that letterboxes to a fixed aspect will leave large bands; one that extends the camera frustum will show more of the world than the level was designed to reveal. Decide which, deliberately, per scene.

Lifecycle

Folding the device can move your app between displays without backgrounding it. A game that pauses on OnApplicationPause and resumes only on explicit focus can appear frozen. Test fold and unfold during active play, not just from a menu.

Reserved regions

The hinge division region has no Unity binding. Reaching it requires a native plugin wrapping the Swift API. For most games the practical mitigation is simpler: keep critical HUD elements away from the horizontal centre band of the screen when running on a foldable.

Checklist items that apply to Unity

Open the full checklist