using System; using UnityEngine.XR.ARSubsystems; namespace UnityEngine.XR.ARFoundation { /// /// Describes when the AR Camera Background should render. /// public enum CameraBackgroundRenderingMode : byte { /// /// Allows the platform to select its preferred render mode. /// Any, /// /// Perform background rendering prior to rendering opaque geometry in the scene. /// BeforeOpaques, /// /// Perform background rendering after opaques have been rendered. /// AfterOpaques } /// /// Provides conversion utilities between and . /// public static class CameraBackgroundRenderingModeUtilities { /// /// Converts a to an . /// /// The to convert. /// /// The converted . /// public static XRSupportedCameraBackgroundRenderingMode ToXRSupportedCameraBackgroundRenderingMode(this CameraBackgroundRenderingMode mode) { return mode switch { CameraBackgroundRenderingMode.Any => XRSupportedCameraBackgroundRenderingMode.Any, CameraBackgroundRenderingMode.BeforeOpaques => XRSupportedCameraBackgroundRenderingMode.BeforeOpaques, CameraBackgroundRenderingMode.AfterOpaques => XRSupportedCameraBackgroundRenderingMode.AfterOpaques, _ => XRSupportedCameraBackgroundRenderingMode.None }; } /// /// Converts an to a . /// /// The to convert. /// /// /// The converted . /// public static CameraBackgroundRenderingMode ToBackgroundRenderingMode(this XRSupportedCameraBackgroundRenderingMode mode) { switch (mode) { case XRSupportedCameraBackgroundRenderingMode.BeforeOpaques: return CameraBackgroundRenderingMode.BeforeOpaques; case XRSupportedCameraBackgroundRenderingMode.AfterOpaques: return CameraBackgroundRenderingMode.AfterOpaques; case XRSupportedCameraBackgroundRenderingMode.Any: case XRSupportedCameraBackgroundRenderingMode.None: default: return CameraBackgroundRenderingMode.Any; } } } }