static void RenderSettings_fogMode(JSVCall vc) { if (vc.bGet) { var result = UnityEngine.RenderSettings.fogMode; JSApi.setEnum((int)JSApi.SetType.Rval, (int)result); } else { UnityEngine.FogMode arg0 = (UnityEngine.FogMode)JSApi.getEnum((int)JSApi.GetType.Arg); UnityEngine.RenderSettings.fogMode = arg0; } }
void Awake() { _defaultEnabled = RenderSettings.fog; _defaultFogColor = RenderSettings.fogColor; _defaultFogDensity = RenderSettings.fogDensity; _defaultFogStartDistance = RenderSettings.fogStartDistance; _defaultFogEndDistance = RenderSettings.fogEndDistance; _defaultFogMode = RenderSettings.fogMode; _defaultAmbientLight = RenderSettings.ambientLight; _fogColor = _defaultFogColor; _fogDensity = _defaultFogDensity; _fogStartDistance = _defaultFogStartDistance; _fogEndDistance = _defaultFogEndDistance; _ambientLight = _defaultAmbientLight; StartCoroutine(AdjustFogCoroutine()); }
public void SetTargetFogSettings(bool enabled, UnityEngine.FogMode fogMode, Color fogColor, float fogDensity, float fogStartDistance, float fogEndDistance, Color ambientColor, bool smoothTransition) { RenderSettings.fog = enabled; RenderSettings.fogMode = fogMode; if (!smoothTransition) { RenderSettings.fogColor = fogColor; RenderSettings.fogDensity = fogDensity; RenderSettings.fogEndDistance = fogEndDistance; RenderSettings.fogStartDistance = fogStartDistance; RenderSettings.ambientLight = ambientColor; } _fogColor = fogColor; _fogDensity = fogDensity; _fogStartDistance = fogStartDistance; _fogEndDistance = fogEndDistance; _ambientLight = ambientColor; }
public static Unity.Tiny.Rendering.Fog.Mode ToTiny(this UnityEngine.FogMode fogMode, bool useFog) { if (!useFog) { return(Unity.Tiny.Rendering.Fog.Mode.None); } switch (fogMode) { case UnityEngine.FogMode.Linear: return(Unity.Tiny.Rendering.Fog.Mode.Linear); case UnityEngine.FogMode.Exponential: return(Unity.Tiny.Rendering.Fog.Mode.Exponential); case UnityEngine.FogMode.ExponentialSquared: return(Unity.Tiny.Rendering.Fog.Mode.ExponentialSquared); default: throw new System.ArgumentOutOfRangeException(nameof(fogMode), fogMode, null); } }
private void ApplyFog(Vector3 cloudPos) { Vector3 camPos = Camera.main.transform.position; if (camPos.y >= (cloudPos.y - scudThickness) && camPos.y <= (cloudPos.y + cloudThickness + scudThickness)) { insideCloud = true; if (!fogStateCaptured) { savedFog = RenderSettings.fog; savedFogColor = RenderSettings.fogColor; savedFogDensity = RenderSettings.fogDensity; savedFogMode = RenderSettings.fogMode; fogStateCaptured = true; } float blend = 1.0f; if (camPos.y < cloudPos.y) { blend = 1.0f - (cloudPos.y - camPos.y) / scudThickness; } else if (camPos.y > cloudPos.y + cloudThickness) { blend = 1.0f - (camPos.y - (cloudPos.y + cloudThickness)) / scudThickness; } blend = blend * blend * blend * blend; RenderSettings.fog = true; Color fogColor = new Color(0.5f, 0.5f, 0.5f); RenderSettings.fogColor = (fogColor * blend) + (savedFogColor * (1.0f - blend)); float fogDensity = 0.05f; float srcDensity = savedFog ? savedFogDensity : 1E-20f; RenderSettings.fogDensity = (fogDensity * blend) + (srcDensity * (1.0f - blend)); RenderSettings.fogMode = UnityEngine.FogMode.ExponentialSquared; if (blend > 0.5f) { cloudBottom.GetComponent<Renderer>().enabled = false; cloudTop.GetComponent<Renderer>().enabled = false; } else { cloudBottom.GetComponent<Renderer>().enabled = true; cloudTop.GetComponent<Renderer>().enabled = true; } } else { insideCloud = false; cloudBottom.GetComponent<Renderer>().enabled = true; cloudTop.GetComponent<Renderer>().enabled = true; if (fogStateCaptured) { RenderSettings.fog = savedFog; RenderSettings.fogColor = savedFogColor; RenderSettings.fogDensity = savedFogDensity; RenderSettings.fogMode = savedFogMode; fogStateCaptured = false; } } }