コード例 #1
0
        void SetUpCameras()
        {
            // Ensure these are setup first or SetUpCameras() will barf
            SetupGameObjects();

            // set up camera stack - AFTER layer "WorldTerrain" has been assigned to worldTerrainGameObject (is done in function generateWorldTerrain())

            Camera.main.clearFlags       = CameraClearFlags.Depth;
            stackedNearCamera.clearFlags = CameraClearFlags.Depth;
            stackedCamera.clearFlags     = CameraClearFlags.Depth;
            stackedCamera.depth          = stackedCameraDepth; // rendered first
            stackedNearCamera.depth      = stackedNearCameraDepth;
            //Camera.main.depth = 3; // renders over stacked camera

            cameraRenderSkyboxToTexture.depth         = cameraRenderSkyboxToTextureDepth; // make sure to render first
            cameraRenderSkyboxToTexture.renderingPath = stackedCamera.renderingPath;

            #if ENHANCED_SKY_CODE_AVAILABLE
            if (isActiveEnhancedSkyMod)
            {
                //skyMan = GameObject.Find("EnhancedSkyController").GetComponent<EnhancedSky.SkyManager>();
                EnhancedSky.SkyManager[] skyManagers = Resources.FindObjectsOfTypeAll <EnhancedSky.SkyManager>();
                foreach (EnhancedSky.SkyManager currentSkyManager in skyManagers)
                {
                    GameObject go = currentSkyManager.gameObject;
                    string     objectPathInHierarchy = GetGameObjectPath(go);
                    if (objectPathInHierarchy == "/Exterior/EnhancedSkyController")
                    {
                        skyMan = currentSkyManager;
                        break;
                    }
                }

                if ((skyMan) && (skyMan.gameObject.activeInHierarchy))
                {
                    sampleFogColorFromSky = true;
                }
            }
            #endif

            cameraRenderSkyboxToTexture.targetTexture = renderTextureSky;
        }
コード例 #2
0
        void Start()
        {
            if (!DaggerfallUnity.Settings.Nystul_IncreasedTerrainDistance)
                return;

            #if ENHANCED_SKY_CODE_AVAILABLE
                //skyManager = GameObject.Find("EnhancedSkyController").GetComponent<EnhancedSky.SkyManager>();
                EnhancedSky.SkyManager[] skyManagers = Resources.FindObjectsOfTypeAll<EnhancedSky.SkyManager>();
                foreach (EnhancedSky.SkyManager currentSkyManager in skyManagers)
                {
                    GameObject go = currentSkyManager.gameObject;
                    string objectPathInHierarchy = GetGameObjectPath(go);
                    if (objectPathInHierarchy == "/EnhancedSkyController")
                    {
                        skyManager = currentSkyManager;
                        break;
                    }
                }

                if ((skyManager) && (DaggerfallUnity.Settings.LypyL_EnhancedSky))
                {
                    isActiveEnhancedSkyMod = true;
                }
            #endif

            if (GameObject.Find("ReflectionsMod") != null)
            {
                if (DaggerfallUnity.Settings.Nystul_RealtimeReflections)
                {
                    isActiveReflectionsMod = true;
                    tileAtlasReflectiveTexture = Resources.Load("tileatlas_reflective") as Texture2D;
                }
            }

            SetUpCameras();

            if (worldTerrainGameObject == null) // lazy creation
            {
                if (!ReadyCheck())
                    return;

                if (!dfUnity.MaterialReader.IsReady)
                    return;

                SetupGameObjects(); // it should be possible to eliminated this line without any impact: please verify!
            }

            // reserve terrain objects for transition ring (2 x long sides (with 2 extra terrains for corner terrains) + 2 x normal sides)
            numberOfTerrainBlocksInTransitionRingArray = 2 * (streamingWorld.TerrainDistance * 2 + 1 + 2) + 2 * (streamingWorld.TerrainDistance * 2 + 1);
            terrainTransitionRingArray = new TransitionTerrainDesc[numberOfTerrainBlocksInTransitionRingArray];
        }
コード例 #3
0
        void SetUpCameras()
        {
            // Ensure these are setup first or SetUpCameras() will barf
            SetupGameObjects();

            // set up camera stack - AFTER layer "WorldTerrain" has been assigned to worldTerrainGameObject (is done in function generateWorldTerrain())

            Camera.main.clearFlags = CameraClearFlags.Depth;
            stackedNearCamera.clearFlags = CameraClearFlags.Depth;
            stackedCamera.clearFlags = CameraClearFlags.Depth;
            stackedCamera.depth = stackedCameraDepth; // rendered first            
            stackedNearCamera.depth = stackedNearCameraDepth;
            //Camera.main.depth = 3; // renders over stacked camera

            cameraRenderSkyboxToTexture.depth = cameraRenderSkyboxToTextureDepth; // make sure to render first
            cameraRenderSkyboxToTexture.renderingPath = stackedCamera.renderingPath;

            #if ENHANCED_SKY_CODE_AVAILABLE
            if (isActiveEnhancedSkyMod)
            {
                //skyMan = GameObject.Find("EnhancedSkyController").GetComponent<EnhancedSky.SkyManager>();
                EnhancedSky.SkyManager[] skyManagers = Resources.FindObjectsOfTypeAll<EnhancedSky.SkyManager>();
                foreach (EnhancedSky.SkyManager currentSkyManager in skyManagers)
                {
                    GameObject go = currentSkyManager.gameObject;
                    string objectPathInHierarchy = GetGameObjectPath(go);
                    if (objectPathInHierarchy == "/Exterior/EnhancedSkyController")
                    {
                        skyMan = currentSkyManager;
                        break;
                    }
                }

                if ((skyMan) && (skyMan.gameObject.activeInHierarchy))
                {
                    sampleFogColorFromSky = true;
                }
            }
            #endif
    
            cameraRenderSkyboxToTexture.targetTexture = renderTextureSky;
        }