void Update() { if (!AutomaticMode) { if (UpdatesPerSecond > 0) { if (Time.time >= NextUpdate) { FogOfWar.UpdateFoV = true; NextUpdate = Time.time + (1f / UpdatesPerSecond); } } } else { FogOfWar.UpdateFoV = true; } FogOfWar.ShowBlocker = ShowBlocker; #if UNITY_EDITOR if (!Application.isPlaying) { PreparePlacement(); } if (!Application.isPlaying) { return; } #endif FogOfWar.PrepareDynamicBlockers(); FogOfWar.MainThreadDeltaTime = Time.deltaTime; if (UseThreading) { #if !UNITY_WEBGL if (FogThread == null || !FogThread.IsAlive) { FogOfWar.PrepareThread(); for (int f = 0; f < FogOfWar.Factions.Count; f++) { //Array.Copy(FogOfWar.Factions[f].FogOfWarMapData, FogOfWar.Factions[f].FogOfWarMapDataBuffer, FogOfWar.Factions[f].FogOfWarMapDataBuffer.Length); FogOfWar.Factions[f].FogTexture.SetPixels(FogOfWar.Factions[f].FogOfWarMapData); FogOfWar.Factions[f].FogTexture.Apply(false); } #if UNITY_EDITOR for (int f = 0; f < FogOfWar.Factions.Count; f++) { if (BlurFog == FogOfWar.FogQuality.On) { TextureBuffer = FogOfWar.Factions[f].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[f].BluredRenderTexture); if (fogOfWarBlur != null) { fogOfWarBlur.BlurImage(FogOfWar.Factions[f].BluredRenderTexture, FogOfWar.Factions[f].BluredRenderTexture); } } else { TextureBuffer = FogOfWar.Factions[f].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[f].BluredRenderTexture); } } #else if (BlurFog == FogOfWar.FogQuality.On) { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); if (fogOfWarBlur != null) { fogOfWarBlur.BlurImage(FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } } else { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } #endif FogThread = new Thread(() => FogOfWar.RevealFog(RevealSpeed, CoverSpeed)); FogThread.Start(); } #else FogOfWar.PrepareThread(); FogOfWar.RevealFog(RevealSpeed, CoverSpeed); if (BlurFog == FogOfWar.FogQuality.On) { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); if (fogOfWarBlur != null) { fogOfWarBlur.BlurImage(FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } } else { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture.SetPixels(FogOfWar.Factions[FogOfWar.RevealFactionInt].FogOfWarMapData); FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture.Apply(false); #endif } else { FogOfWar.PrepareThread(); FogOfWar.RevealFog(RevealSpeed, CoverSpeed); if (BlurFog == FogOfWar.FogQuality.On) { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); if (fogOfWarBlur != null) { fogOfWarBlur.BlurImage(FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } } else { TextureBuffer = FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture as Texture; Graphics.Blit(TextureBuffer, FogOfWar.Factions[FogOfWar.RevealFactionInt].BluredRenderTexture); } FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture.SetPixels(FogOfWar.Factions[FogOfWar.RevealFactionInt].FogOfWarMapData); FogOfWar.Factions[FogOfWar.RevealFactionInt].FogTexture.Apply(false); } }