예제 #1
0
        private RTECamera _CreateCamera(Camera camera, CameraEvent cameraEvent, bool createMeshesCache, bool createRenderersCache)
        {
            bool wasActive = camera.gameObject.activeSelf;

            camera.gameObject.SetActive(false);
            RTECamera rteCamera = camera.gameObject.AddComponent <RTECamera>();

            rteCamera.Event = cameraEvent;

            if (createMeshesCache)
            {
                MeshesCache meshesCache = gameObject.AddComponent <MeshesCache>();
                meshesCache.RefreshMode = CacheRefreshMode.Manual;
                rteCamera.MeshesCache   = meshesCache;
            }

            if (createRenderersCache)
            {
                RenderersCache renderersCache = gameObject.AddComponent <RenderersCache>();
                rteCamera.RenderersCache = renderersCache;
            }

            camera.gameObject.SetActive(wasActive);

            return(rteCamera);
        }
        public IMeshesCache CreateMeshesCache(CameraEvent cameraEvent)
        {
            MeshesCache cache = gameObject.AddComponent <MeshesCache>();

            cache.RefreshMode = CacheRefreshMode.Manual;

            List <RTECamera> rteCameras = new List <RTECamera>();

            foreach (GameObject camera in m_cameras)
            {
                CreateRTECamera(camera, cameraEvent, cache, rteCameras);
            }

            m_meshesCache.Add(cache, new Data(cache, cameraEvent, rteCameras));
            return(cache);
        }
        public IRTECamera CreateCamera(Camera camera)
        {
            RenderersCache renderersCache = camera.gameObject.AddComponent <RenderersCache>();
            MeshesCache    meshesCache    = camera.gameObject.AddComponent <MeshesCache>();

            meshesCache.RefreshMode = CacheRefreshMode.Manual;

            RTECamera rteCamera = camera.gameObject.AddComponent <RTECamera>();

            rteCamera.RenderersCache = renderersCache;
            rteCamera.MeshesCache    = meshesCache;

            if (RenderPipelineInfo.Type == RPType.Standard)
            {
                rteCamera.Event = CameraEvent.BeforeImageEffects;
            }
            else
            {
                rteCamera.Event = CameraEvent.AfterImageEffectsOpaque;
            }

            return(rteCamera);
        }