diff options
author | chai <215380520@qq.com> | 2024-03-13 11:00:58 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-03-13 11:00:58 +0800 |
commit | 6ce8b9e22fc13be34b442c7b6af48b42cd44275a (patch) | |
tree | b38119d2acf0a982cb67e381f146924b9bfc3b3f /_appControlerTerrain.cs |
+init
Diffstat (limited to '_appControlerTerrain.cs')
-rw-r--r-- | _appControlerTerrain.cs | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/_appControlerTerrain.cs b/_appControlerTerrain.cs new file mode 100644 index 0000000..6728256 --- /dev/null +++ b/_appControlerTerrain.cs @@ -0,0 +1,179 @@ +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<Light>(); + component.shadows = ((!shadows) ? LightShadows.Soft : LightShadows.None); + forward_path = GUILayout.Toggle(forward_path, "forward rendering"); + Camera component2 = GameObject.Find("Main Camera").GetComponent<Camera>(); + 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(); + } +} |