Exemple #1
0
        void Reset()
        {
            directionalLight = GDOC_Utils.FindMainDirectionalLight();

                        #if UNITY_EDITOR
            if (UnityEditor.PlayerSettings.stereoRenderingPath == UnityEditor.StereoRenderingPath.SinglePass)
            {
                vrMode = GDOC_VRMode.SinglePass;
            }
            else if (UnityEditor.PlayerSettings.stereoRenderingPath == UnityEditor.StereoRenderingPath.MultiPass)
            {
                vrMode = GDOC_VRMode.MultiPass;
            }
                        #endif
        }
Exemple #2
0
        void OnSceneLoaded(Scene scene, LoadSceneMode mode)
        {
            if (this == null)
            {
                return;
            }

            if (!enableNewSceneScan)
            {
                return;
            }

            if (autoDirectionalLight && directionalLight == null)
            {
                directionalLight = GDOC_Utils.FindMainDirectionalLight();
                ValidateSettings();
            }

            StartCoroutine(ScanScene(scene, true));
        }
Exemple #3
0
        void OnEnable()
        {
            if (SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D11)
            {
                initError = GDOC_Error.UnsupportedGraphicsAPI;
                enabled   = false;
                return;
            }

            var os = SystemInfo.operatingSystem;

            if (os.Contains("Windows") && !os.Contains("64"))
            {
                initError = GDOC_Error.x86NotSupported;
                enabled   = false;
                return;
            }

            camera = GetComponent <Camera>();
            if (camera == null)
            {
                initError = GDOC_Error.CameraRequired;
                enabled   = false;
                return;
            }

            RequestLimits(ref limits);

            if (limits.version == -1)
            {
                // demo won't work in builds
                enabled = false;
                return;
            }

            if (instance != null && instance != this)
            {
                if (instance.isActiveAndEnabled)
                {
                    initError = GDOC_Error.SecondInstance;
                    enabled   = false;
                    return;
                }

                /*
                 * _instance = this;
                 *
                 * if (fastCameraSwitch) {
                 *      fast = true;
                 * }
                 */
            }

            initError = GDOC_Error.None;

            if (autoDirectionalLight && directionalLight == null)
            {
                directionalLight = GDOC_Utils.FindMainDirectionalLight();
            }

            Clean(camera);
            Init(camera);

            InitPlugin();

            foreach (var e in Resources.FindObjectsOfTypeAll <GDOC_Occludee>())
            {
                if (e.isTemporary)
                {
                    if (!kickstart)
                    {
                        Destroy(e);
                    }
                }
                else
                {
                    e.OnRemove();
                }
            }

            lastCameraPosition = camera.transform.position;
            lastCameraRotation = camera.transform.rotation;

            if (maxQueuedFrames > -1)
            {
                QualitySettings.maxQueuedFrames = maxQueuedFrames;
            }

            maxOcludeeId = 0;

            if (sampleMaterial == null)
            {
                sampleMaterial = new Material(Shader.Find("Hidden/GDOC/Sample"));
                sampleMaterial.enableInstancing = true;
            }

            InitLightBuffers();

            InitUI();

            if (kickstart)
            {
                Kickstart();
            }

            InitScanning();

            StartOrRestartCoroutine(ref frameEndWaiter, FrameEndWaiter());
        }