public Screen()
        {
            _screenGameObject       = new GameObject("CinemaScreen");
            _screenSurface          = _screenGameObject.AddComponent <CurvedSurface>();
            _screenGameObject.layer = LayerMask.NameToLayer("Environment");
            _screenRenderer         = _screenGameObject.GetComponent <Renderer>();
            _screenBodyGameObject   = CreateBody();
            _screenBloomPrePass     = _screenGameObject.AddComponent <CustomBloomPrePass>();

            Hide();
        }
        private GameObject CreateBody()
        {
            GameObject body = new GameObject("CinemaScreenBody");

            _screenBodySurface           = body.AddComponent <CurvedSurface>();
            body.transform.parent        = _screenGameObject.transform;
            body.transform.localPosition = new Vector3(0, 0, 0.1f);             //A fixed offset is necessary for the center segments of the curved screen
            body.transform.localScale    = new Vector3(1.0015f, 1.0015f, 1.0015f);
            Renderer bodyRenderer = body.GetComponent <Renderer>();

            bodyRenderer.material = new Material(Resources.FindObjectsOfTypeAll <Material>()
                                                 .Last(x => x.name == "DarkEnvironmentSimple"));
            body.layer = LayerMask.NameToLayer("Environment");
            return(body);
        }