using UnityEngine; public class _appControlerTerrain : MonoBehaviour { public bool shadows; public bool forward_path = true; public bool terrain_self_shadow; public bool terrain_smooth_shadows = true; private bool panel_enabled; public float light_dir = 285f; public float preset_param_interp; private RTP_LODmanager LODmanager; private void Awake() { GetLODManager(); panel_enabled = true; } private void Update() { if (Input.GetKeyDown(KeyCode.P)) { panel_enabled = !panel_enabled; } if (Input.GetKey(KeyCode.Period)) { base.transform.localPosition = new Vector3(base.transform.localPosition.x, Mathf.Min(base.transform.localPosition.y + 0.5f, 50f), base.transform.localPosition.z); } if (Input.GetKey(KeyCode.Comma)) { base.transform.localPosition = new Vector3(base.transform.localPosition.x, Mathf.Max(base.transform.localPosition.y - 0.5f, 0.9f), base.transform.localPosition.z); } } private void GetLODManager() { GameObject gameObject = GameObject.Find("_RTP_LODmanager"); if (!(gameObject == null)) { LODmanager = (RTP_LODmanager)gameObject.GetComponent(typeof(RTP_LODmanager)); } } private void OnGUI() { if (!LODmanager) { GetLODManager(); return; } GUILayout.Space(10f); GUILayout.BeginVertical("box"); GUILayout.Label(string.Empty + FPSmeter.fps); if (panel_enabled) { shadows = GUILayout.Toggle(shadows, "disable Unity's shadows"); Light component = GameObject.Find("Directional light").GetComponent(); component.shadows = ((!shadows) ? LightShadows.Soft : LightShadows.None); forward_path = GUILayout.Toggle(forward_path, "forward rendering"); Camera component2 = GameObject.Find("Main Camera").GetComponent(); component2.renderingPath = (forward_path ? RenderingPath.Forward : RenderingPath.DeferredShading); if (forward_path) { RenderSettings.ambientLight = new Color32(25, 25, 25, 0); } else { RenderSettings.ambientLight = new Color32(93, 103, 122, 0); } TerrainShaderLod rTP_LODlevel = LODmanager.RTP_LODlevel; TerrainShaderLod terrainShaderLod = rTP_LODlevel; switch (rTP_LODlevel) { case TerrainShaderLod.POM: if (GUILayout.Button("POM shading")) { terrainShaderLod = TerrainShaderLod.PM; } break; case TerrainShaderLod.PM: if (GUILayout.Button("PM shading")) { terrainShaderLod = TerrainShaderLod.SIMPLE; } break; case TerrainShaderLod.SIMPLE: if (GUILayout.Button("SIMPLE shading")) { terrainShaderLod = TerrainShaderLod.POM; } break; } switch (terrainShaderLod) { case TerrainShaderLod.POM: if (terrainShaderLod != rTP_LODlevel) { Terrain terrain2 = GameObject.Find("Terrain").GetComponent(typeof(Terrain)) as Terrain; ReliefTerrain reliefTerrain2 = terrain2.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain; reliefTerrain2.globalSettingsHolder.Refresh(); LODmanager.RTP_LODlevel = TerrainShaderLod.POM; LODmanager.RefreshLODlevel(); } break; case TerrainShaderLod.PM: if (terrainShaderLod != rTP_LODlevel) { Terrain terrain3 = GameObject.Find("Terrain").GetComponent(typeof(Terrain)) as Terrain; ReliefTerrain reliefTerrain3 = terrain3.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain; reliefTerrain3.globalSettingsHolder.Refresh(); LODmanager.RTP_LODlevel = TerrainShaderLod.PM; LODmanager.RefreshLODlevel(); } break; case TerrainShaderLod.SIMPLE: if (terrainShaderLod != rTP_LODlevel) { Terrain terrain = GameObject.Find("Terrain").GetComponent(typeof(Terrain)) as Terrain; ReliefTerrain reliefTerrain = terrain.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain; reliefTerrain.globalSettingsHolder.Refresh(); LODmanager.RTP_LODlevel = TerrainShaderLod.SIMPLE; LODmanager.RefreshLODlevel(); } break; } if (terrainShaderLod == TerrainShaderLod.POM) { terrain_self_shadow = LODmanager.RTP_SHADOWS; bool flag = GUILayout.Toggle(terrain_self_shadow, "self shadowing"); if (flag != terrain_self_shadow) { LODmanager.RTP_SHADOWS = flag; LODmanager.RefreshLODlevel(); } terrain_self_shadow = flag; if (terrain_self_shadow) { terrain_smooth_shadows = LODmanager.RTP_SOFT_SHADOWS; bool flag2 = GUILayout.Toggle(terrain_smooth_shadows, "smooth shadows"); if (flag2 != terrain_smooth_shadows) { LODmanager.RTP_SOFT_SHADOWS = flag2; LODmanager.RefreshLODlevel(); } terrain_smooth_shadows = flag2; } } if (LODmanager.RTP_SNOW_FIRST) { Terrain terrain4 = GameObject.Find("Terrain").GetComponent(typeof(Terrain)) as Terrain; ReliefTerrain reliefTerrain4 = terrain4.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain; GUILayout.BeginHorizontal(); GUILayout.Label("Snow", GUILayout.MaxWidth(40f)); float num = GUILayout.HorizontalSlider(reliefTerrain4.globalSettingsHolder._snow_strength, 0f, 1f); if (num != reliefTerrain4.globalSettingsHolder._snow_strength) { reliefTerrain4.globalSettingsHolder._snow_strength = num; reliefTerrain4.globalSettingsHolder.Refresh(); } GUILayout.EndHorizontal(); } GUILayout.Label("Light", GUILayout.MaxWidth(40f)); light_dir = GUILayout.HorizontalSlider(light_dir, 0f, 360f); component.transform.rotation = Quaternion.Euler(40f, light_dir, 0f); GUILayout.Label(" F (hold) - freeze camera"); GUILayout.Label(" ,/. - change cam position"); } GUILayout.Label(" P - toggle panel"); GUILayout.EndVertical(); } }