180 lines
5.4 KiB
C#
180 lines
5.4 KiB
C#
using UnityEngine;
|
|
|
|
public class _appControlerTerrain2Geometry : 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)
|
|
{
|
|
GameObject gameObject2 = GameObject.Find("terrainMesh");
|
|
ReliefTerrain reliefTerrain2 = gameObject2.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain;
|
|
reliefTerrain2.globalSettingsHolder.Refresh();
|
|
LODmanager.RTP_LODlevel = TerrainShaderLod.POM;
|
|
LODmanager.RefreshLODlevel();
|
|
}
|
|
break;
|
|
case TerrainShaderLod.PM:
|
|
if (terrainShaderLod != rTP_LODlevel)
|
|
{
|
|
GameObject gameObject3 = GameObject.Find("terrainMesh");
|
|
ReliefTerrain reliefTerrain3 = gameObject3.GetComponent(typeof(ReliefTerrain)) as ReliefTerrain;
|
|
reliefTerrain3.globalSettingsHolder.Refresh();
|
|
LODmanager.RTP_LODlevel = TerrainShaderLod.PM;
|
|
LODmanager.RefreshLODlevel();
|
|
}
|
|
break;
|
|
case TerrainShaderLod.SIMPLE:
|
|
if (terrainShaderLod != rTP_LODlevel)
|
|
{
|
|
GameObject gameObject = GameObject.Find("terrainMesh");
|
|
ReliefTerrain reliefTerrain = gameObject.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)
|
|
{
|
|
GameObject gameObject4 = GameObject.Find("terrainMesh");
|
|
ReliefTerrain reliefTerrain4 = gameObject4.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();
|
|
}
|
|
}
|