void SetTime(EditorTime newTime) { if (firstTime) { Setup(); } currentTime = newTime; Debug.Log("LightsOut: Switching to " + newTime + " Mode"); // Toggle Shaders Debug.Log("LightsOut: Updating Shaders"); shaderManager.SetShaderMode(newTime); // Toggle ambient settings Debug.Log("LightsOut: Updating Ambient Light and Skybox"); ambientManager.SetAmbientMode(newTime); //toggle VAB/SPH lights Debug.Log("LightsOut: Updating VAB/SPH Lights"); externalLightsManager.SetExternalLightsMode(newTime, FindObjectsOfType(typeof(Light)) as Light[]); // Toggle all part lights SetPartLights(newTime == EditorTime.Night); if (newTime == EditorTime.Night) { launcherButton.SetTexture((Texture)GameDatabase.Instance.GetTexture(sunIcon, false)); } else { launcherButton.SetTexture((Texture)GameDatabase.Instance.GetTexture(munIcon, false)); } }
public void SetAmbientMode(EditorTime time) { if (time == EditorTime.Night) { RenderSettings.ambientLight = new Color(0.05f, 0.05f, 0.05f); RenderSettings.fog = false; RenderSettings.ambientIntensity = 0.05f; mainCamera.clearFlags = CameraClearFlags.Nothing; LightmapSettings.lightmaps = new LightmapData[] { }; RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Skybox; mainCamera.cullingMask = originalCullingMask; } else { RenderSettings.ambientLight = originalAmbientLight; RenderSettings.fog = true; RenderSettings.ambientMode = originalAmbientMode; RenderSettings.skybox = originalSkybox; RenderSettings.ambientIntensity = originalAmbientIntensity; mainCamera.clearFlags = originalClearFlags; LightmapSettings.lightmaps = originalLightmapData; mainCamera.cullingMask = originalCullingMask | 1 << newLayer; } }
public void SetExternalLightsMode(EditorTime time, Light[] lights) { foreach (Light light in lights) { //Debug.Log("Light: " + light.name + ", Parent: " + light.transform.parent.gameObject.name + ", " + light.color + ", Default " + (light.enabled ? "ON" : "OFF")); foreach (LightToChange lightToChange in lightsToChange) { if (light.name.Equals(lightToChange.name, StringComparison.Ordinal) && light.transform.parent.gameObject.name.Equals(lightToChange.parentName, StringComparison.Ordinal)) { light.enabled = (time == EditorTime.Day ? true : false); //Debug.Log("Light: " + light.name + ", Parent: " + light.transform.parent.gameObject.name + ", " + light.color + ", Default " + (light.enabled ? "ON" : "OFF")); } } } }
public void SetShaderMode(EditorTime time) { for (int i = 0; i < originalShaders.Count; i++) { MaterialTracker material = originalShaders[i]; if (time == EditorTime.Night) { material.current.shader = Shader.Find("KSP/Diffuse"); } else { material.current.shader = material.original.shader; } } }
public void SetAmbientMode(EditorTime time) { if (time == EditorTime.Night) { RenderSettings.ambientLight = new Color(0.15f, 0.15f, 0.15f); RenderSettings.ambientMode = UnityEngine.Rendering.AmbientMode.Flat; RenderSettings.fog = false; mainCamera.clearFlags = CameraClearFlags.Nothing; LightmapSettings.lightmaps = new LightmapData[] { }; mainCamera.cullingMask = originalCullingMask; } else { RenderSettings.ambientLight = originalAmbientLight; RenderSettings.fog = true; RenderSettings.ambientMode = originalAmbientMode; RenderSettings.skybox = originalSkybox; mainCamera.clearFlags = originalClearFlags; LightmapSettings.lightmaps = originalLightmapData; mainCamera.cullingMask = originalCullingMask | 1 << newLayer; } }
public void SetExternalLightsMode(EditorTime time, Light[] lights) { foreach (Light light in lights) { //Debug.Log("Light: " + light.name + ", Parent: " + light.transform.parent.gameObject.name + ", " + light.color + ", Default " + (light.enabled ? "ON" : "OFF")); foreach (LightToChange lightToChange in lightsToChange) { if (light.name.Equals(lightToChange.name, StringComparison.Ordinal) && light.transform.parent.gameObject.name.Equals(lightToChange.parentName, StringComparison.Ordinal)) { light.enabled = (time == EditorTime.Day ? true : false); } } } }