[Unity URP] URP Camera usage and dynamic settings

Official documentation: 

 Cameras | Universal RP | 12.1.1 https://docs.unity3d.com/cn/Packages/[email protected]/manual/cameras.html Camera Types:

  • Render Type
    • Base: A generic camera that renders to a specific render target, there must be at least one in the scene.
    • Overlay: Renders its view on top of the output of another camera. Must be used with the underlying camera.

Multi-camera usage:

 

function test:

Camera1, RenderType is set to Base, rendering Cube and all objects within the camera's field of view;

Camera2, RenderType is set to Overlay, the Sphere is rendered, and the overlay is displayed on Camera1.

In actual use, it can be rendered in layers. For example, the Sphere object is set to Sphere Layer, Camera1 eliminates Sphere Layer, and Camera2 only renders Sphere Layer.

 Dynamic settings:

    public void AddOverlayCameraAsBase(Camera toBaseCamera,Camera toOverlayCamera)
    {
        UniversalAdditionalCameraData toBaseData = toBaseCamera.GetUniversalAdditionalCameraData();
        UniversalAdditionalCameraData toOverlayData = toOverlayCamera.GetUniversalAdditionalCameraData();

        if(toBaseData.renderType != CameraRenderType.Base)
            toBaseData.renderType = CameraRenderType.Base;
        if(toOverlayData.renderType != CameraRenderType.Overlay)
            toOverlayData.renderType = CameraRenderType.Overlay;

        if(!toBaseData.cameraStack.Contains(toOverlayCamera))
            toBaseData.cameraStack.Add(toOverlayCamera);
    }

Guess you like

Origin blog.csdn.net/qq_39108767/article/details/131120618