skip to Main Content

The Split Screen Manager requires only 3 mandatory fields to be assigned before it can run properly:

  • Player1 & Player2: you want to follow (required). You can assign these fields using scripting as well at any time.

  • Main Camera (under Camera Control): the asset will use the camera tagged as MainCamera by default, but you can assign any other camera here. This camera should follow player 1.

More options:

  • Preview In Edit Mode: when enabled, the split screen system will run also in edit mode.

  • Split Screen Mode: choose between “Off” (disables the system completely), “Follow Player 1” (main camera will follow player 1, no split), “Follow Player 2” (main camera will follow player 2, no split), “Split Screen Fixed” (split system is enabled but cameras can move and look anywhere, no player follow operates), “Split Screen Automatic” (split system is enabled when players separate and cameras are managed in automatic mode) and “Split Screen Independent” (split screen is enabled and cameras rotation and distances can be controlled).

  • Split Line Width, Color and Fade Duration: lets you customize the appearance of the split line.

  • Max Screen Separation: a value of 0.5 (default) will keep the targets or players in the middle of each correspondent split screen. A value of 0.9 will allow them to approach to the edge of the screen before the split line appears.

  • Vertical Rotation, Min Angle, Max Angle: determines the default vertical rotation for the cameras as well as a clamping range.

  • Horizontal Rotation: let you choose the default horizontal angle. The “Automatic” field will make the cameras look perpendicular to the axis formed by the two targets producing a vertical split line on the screen.

  • Rotation Smoothing: makes camera rotation soft. A value of 0 means no smoothing. The higher the value, the fastest the rotation.

  • Camera Distance: default camera distance. This value can be clamped by the Min Distance and Max Distance parameters. When “Auto-Manage Distance” is enabled, the camera will zoom out when players start separating until the “Max Distance”. At this point, the screen is split.

  • Check Camera Occluders: when this option is enabled, the camera will be moved towards the player when some object (like a wall) blocks the view. This occlusion test relies on colliders so make sure blocking objects have a mesh collider attached if you want to use this option. Note: when the camera is occluded, it needs to be pushed toward the player character – this will always trigger the split screen mode.
  • Custom Distance When Split and Distance When Split. If the first parameter is enabled, when the split screen is activated, the camera zoom will transition to the Distance When Split, instead of the regular Camera Distance. This allows you to specify a different camera distance when players are on the same screen or when players are in split screen mode. The “Zoom Duration” option let you specify the duration of the zoom transition.

  • Split Audio: if enabled, the system will ensure audio is emitted from the nearest player. Read the chapter “Splitting Audio” for more details.

  • Downsampling: when the split screen is activated, two cameras render the scene from each player/target perspective. You can downsample the rendering to improve performance. This option can be useful on less powerful devices.

  • HDR: enabling this option will compose the two images from each camera on an HDR-enabled render buffer. Enable only if you wish to apply some kind of post-processing on the final image.

  • Show Cameras Ids: this option will display a label for each camera on each split side.

Default Camera Controller

The SplitScreenManager prefab includes a simple default camera controller. This script reads mouse movement and rotates camera accordingly. Feel free to use, edit or replace this script with your own.

Technical Details

The system uses a secondary camera (child of the SplitScreenManager gameobject) to render the scene from the second target or player. A custom material/shader combines both images, from the main camera and the second camera, and displays the result in a canvas that’s rendered by the SplitScreenManager camera.

The second camera will copy all parameters from the main camera. If you have some post-processing affecting the main camera, you can add those post-processing script to the second camera as well (in built-in pipeline).

You can also add custom post-processing effects to the SplitScreenManager camera. For example, if you use Beautify, you could add Beautify to the SplitScreenManager camera, instead of adding it to the main camera.

Render Pipelines

The system has been designed and tested to work on the three main pipelines: built-in, URP and HDRP.

However, in HDRP it’s necessary to set the VolumeMask property of the SplitScreenManager’s camera to Nothing. This is important so no default post-processing is applied redundantly to the compositing camera (the SplitScreenManager camera).

Back To Top