If you have ever built a local co-op game in Unity, you know the visual frustration of standard side-by-side split screen. When players are standing next to each other, forcing them into narrow, bisected viewports wastes rendered screen space and feels disconnected. In my experience building local multiplayer prototypes, achieving the dynamic split screen look popularized by titles like Lego Star Wars or It Takes Two requires tricky math, custom screen-space post-processing, and endless vector calculations.
The Adaptive Split Screen asset solves this cleanly. At its core, the architecture relies on a centralized camera controller tracking target transforms in world space. When two targets are within a configurable proximity, the system renders a single shared view through a unified Camera frustum. As the targets move apart beyond a specified distance threshold, the script dynamically splits the screen using custom render passes or dual camera viewports, drawing a real-time separating line angled relative to the vector between the two players.
Architecturally, the asset sits neatly between Unity's rendering pipeline and your gameplay framework. It handles target tracking, dynamic frustum calculation, screen-space boundary line generation, and audio listener attenuation so you don't end up with doubled-up spatial audio bugs.
Looking under the hood, the system is designed to minimize runtime overhead while maintaining clean visuals during dynamic viewport transitions.
ScriptableRenderPass setup, alongside legacy support for the Built-in Render Pipeline.Here is the key takeaway: instead of rendering two heavy camera pipelines continuously, the manager intelligently disables the secondary camera entirely when players are merged, saving substantial GPU rasterization cycles.
While any local co-op title can benefit from dynamic camera setups, specific genres maximize the utility of this system:
Games where players explore environments both together and separately benefit immensely. Players can explore opposite sides of a room without pulling the camera off-bounds or feeling constrained by an invisible rubber band boundary.
In isometric or top-down perspectives, keeping both players framed on a single screen often means zooming out so far that player models become tiny dots. Dynamic split screen allows tight camera framing on each player while seamlessly joining into a cinematic single view during boss fights.
When two players need to operate switches on opposite sides of a map simultaneously, individual cameras allow precise alignment without obscuring puzzle elements.
Integrating this tool into an existing project takes under ten minutes once you understand the basic component flow. Here is how I usually set it up in a standard project:
AdaptiveSplitScreenManager component to a main controller GameObject in your scene.Camera component into the Main Camera slot.Transform references manually or via code during character spawn routines.If you spawn players dynamically over a local network or via a character selection screen, you can wire up targets programmatically using a straightforward controller script:
using UnityEngine;
using AdaptiveSplitScreenSystem;
public class CoOpPlayerSetup : MonoBehaviour
{
[SerializeField] private AdaptiveSplitScreenManager cameraManager;
public void OnPlayersSpawned(GameObject p1, GameObject p2)
{
if (cameraManager == null)
{
cameraManager = FindFirstObjectByType<AdaptiveSplitScreenManager>();
}
// Register player transforms into the dynamic camera controller
cameraManager.SetTargetOne(p1.transform);
cameraManager.SetTargetTwo(p2.transform);
// Enable tracking immediately
cameraManager.EnableAdaptiveSplit();
}
}
When running URP, ensure you add the provided SplitScreenRenderFeature to your Forward Renderer asset data file, or the custom border line shader will not blit over the final color buffer correctly.
| Category | Tools / Camera |
|---|---|
| Latest Version | v1.4.1 (2 tracked releases) |
| File Size | 6.36 MB |
| Added to Platform | February 16, 2026 |
| Views | 4 views |
| Downloads | 1 downloads |
| Favourites | 0 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |