EnviroFlatCloudsModuleEditor.cs 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. namespace Enviro
  6. {
  7. [CustomEditor(typeof(EnviroFlatCloudsModule))]
  8. public class EnviroFlatCloudsModuleEditor : EnviroModuleEditor
  9. {
  10. private EnviroFlatCloudsModule myTarget;
  11. //Properties Cirrus
  12. private SerializedProperty useCirrusClouds,cirrusCloudsTex, cirrusCloudsAlpha,cirrusCloudsCoverage, cirrusCloudsColorPower, cirrusCloudsColor;
  13. //Properties 2D
  14. private SerializedProperty useFlatClouds, flatCloudsBaseTex, flatCloudsDetailTex, flatCloudsLightColor, flatCloudsAmbientColor, flatCloudsLightIntensity, flatCloudsAmbientIntensity,
  15. flatCloudsAbsorbtion, flatCloudsHGPhase, flatCloudsCoverage, flatCloudsDensity, flatCloudsAltitude, flatCloudsTonemapping, flatCloudsBaseTiling, flatCloudsDetailTiling;
  16. //On Enable
  17. public override void OnEnable()
  18. {
  19. base.OnEnable();
  20. if(!target)
  21. return;
  22. myTarget = (EnviroFlatCloudsModule)target;
  23. serializedObj = new SerializedObject(myTarget);
  24. preset = serializedObj.FindProperty("preset");
  25. useCirrusClouds = serializedObj.FindProperty("settings.useCirrusClouds");
  26. cirrusCloudsTex = serializedObj.FindProperty("settings.cirrusCloudsTex");
  27. cirrusCloudsAlpha = serializedObj.FindProperty("settings.cirrusCloudsAlpha");
  28. cirrusCloudsCoverage = serializedObj.FindProperty("settings.cirrusCloudsCoverage");
  29. cirrusCloudsColorPower = serializedObj.FindProperty("settings.cirrusCloudsColorPower");
  30. cirrusCloudsColor = serializedObj.FindProperty("settings.cirrusCloudsColor");
  31. //2D Clouds
  32. useFlatClouds = serializedObj.FindProperty("settings.useFlatClouds");
  33. flatCloudsBaseTex = serializedObj.FindProperty("settings.flatCloudsBaseTex");
  34. flatCloudsDetailTex = serializedObj.FindProperty("settings.flatCloudsDetailTex");
  35. flatCloudsLightColor = serializedObj.FindProperty("settings.flatCloudsLightColor");
  36. flatCloudsAmbientColor = serializedObj.FindProperty("settings.flatCloudsAmbientColor");
  37. flatCloudsLightIntensity = serializedObj.FindProperty("settings.flatCloudsLightIntensity");
  38. flatCloudsAmbientIntensity = serializedObj.FindProperty("settings.flatCloudsAmbientIntensity");
  39. flatCloudsAbsorbtion = serializedObj.FindProperty("settings.flatCloudsAbsorbtion");
  40. flatCloudsHGPhase = serializedObj.FindProperty("settings.flatCloudsHGPhase");
  41. flatCloudsCoverage = serializedObj.FindProperty("settings.flatCloudsCoverage");
  42. flatCloudsDensity = serializedObj.FindProperty("settings.flatCloudsDensity");
  43. flatCloudsAltitude = serializedObj.FindProperty("settings.flatCloudsAltitude");
  44. flatCloudsTonemapping = serializedObj.FindProperty("settings.flatCloudsTonemapping");
  45. flatCloudsBaseTiling = serializedObj.FindProperty("settings.flatCloudsBaseTiling");
  46. flatCloudsDetailTiling = serializedObj.FindProperty("settings.flatCloudsDetailTiling");
  47. }
  48. public override void OnInspectorGUI()
  49. {
  50. if(!target)
  51. return;
  52. base.OnInspectorGUI();
  53. GUI.backgroundColor = baseModuleColor;
  54. GUILayout.BeginVertical("",boxStyleModified);
  55. GUI.backgroundColor = Color.white;
  56. EditorGUILayout.BeginHorizontal();
  57. myTarget.showModuleInspector = GUILayout.Toggle(myTarget.showModuleInspector, "Flat Clouds", headerFoldout);
  58. GUILayout.FlexibleSpace();
  59. if(GUILayout.Button("x", EditorStyles.miniButtonRight,GUILayout.Width(18), GUILayout.Height(18)))
  60. {
  61. EnviroManager.instance.RemoveModule(EnviroManager.ModuleType.FlatClouds);
  62. DestroyImmediate(this);
  63. return;
  64. }
  65. EditorGUILayout.EndHorizontal();
  66. if(myTarget.showModuleInspector)
  67. {
  68. RenderDisableInputBox();
  69. serializedObj.UpdateIfRequiredOrScript ();
  70. EditorGUI.BeginChangeCheck();
  71. // Cirrus Clouds
  72. GUI.backgroundColor = categoryModuleColor;
  73. GUILayout.BeginVertical("",boxStyleModified);
  74. GUI.backgroundColor = Color.white;
  75. myTarget.showCirrusCloudsControls = GUILayout.Toggle(myTarget.showCirrusCloudsControls, "Cirrus Clouds", headerFoldout);
  76. if(myTarget.showCirrusCloudsControls)
  77. {
  78. GUILayout.Space(10);
  79. EditorGUILayout.PropertyField(useCirrusClouds);
  80. EditorGUILayout.PropertyField(cirrusCloudsTex);
  81. DisableInputStart();
  82. EditorGUILayout.PropertyField(cirrusCloudsAlpha);
  83. EditorGUILayout.PropertyField(cirrusCloudsCoverage);
  84. EditorGUILayout.PropertyField(cirrusCloudsColorPower);
  85. DisableInputEnd();
  86. EditorGUILayout.PropertyField(cirrusCloudsColor);
  87. }
  88. GUILayout.EndVertical();
  89. if( myTarget.showCirrusCloudsControls)
  90. GUILayout.Space(10);
  91. // 2D Clouds
  92. GUI.backgroundColor = categoryModuleColor;
  93. GUILayout.BeginVertical("",boxStyleModified);
  94. GUI.backgroundColor = Color.white;
  95. myTarget.show2DCloudsControls = GUILayout.Toggle(myTarget.show2DCloudsControls, "2D Clouds", headerFoldout);
  96. if(myTarget.show2DCloudsControls)
  97. {
  98. GUILayout.Space(10);
  99. EditorGUILayout.PropertyField(useFlatClouds);
  100. GUILayout.Space(5);
  101. EditorGUILayout.PropertyField(flatCloudsBaseTex);
  102. EditorGUILayout.PropertyField(flatCloudsBaseTiling);
  103. EditorGUILayout.PropertyField(flatCloudsDetailTex);
  104. EditorGUILayout.PropertyField(flatCloudsDetailTiling);
  105. GUILayout.Space(5);
  106. EditorGUILayout.PropertyField(flatCloudsLightColor);
  107. DisableInputStart();
  108. EditorGUILayout.PropertyField(flatCloudsLightIntensity);
  109. DisableInputEnd();
  110. EditorGUILayout.PropertyField(flatCloudsAmbientColor);
  111. DisableInputStart();
  112. EditorGUILayout.PropertyField(flatCloudsAmbientIntensity);
  113. EditorGUILayout.PropertyField(flatCloudsAbsorbtion);
  114. DisableInputEnd();
  115. EditorGUILayout.PropertyField(flatCloudsHGPhase);
  116. GUILayout.Space(5);
  117. DisableInputStart();
  118. EditorGUILayout.PropertyField(flatCloudsCoverage);
  119. EditorGUILayout.PropertyField(flatCloudsDensity);
  120. DisableInputEnd();
  121. EditorGUILayout.PropertyField(flatCloudsAltitude);
  122. EditorGUILayout.PropertyField(flatCloudsTonemapping);
  123. }
  124. GUILayout.EndVertical();
  125. if( myTarget.show2DCloudsControls)
  126. GUILayout.Space(10);
  127. // Save Load
  128. GUI.backgroundColor = categoryModuleColor;
  129. GUILayout.BeginVertical("",boxStyleModified);
  130. GUI.backgroundColor = Color.white;
  131. myTarget.showSaveLoad = GUILayout.Toggle(myTarget.showSaveLoad, "Save/Load", headerFoldout);
  132. if(myTarget.showSaveLoad)
  133. {
  134. EditorGUILayout.PropertyField(preset);
  135. GUILayout.BeginHorizontal("",wrapStyle);
  136. if(myTarget.preset != null)
  137. {
  138. if(GUILayout.Button("Load"))
  139. {
  140. myTarget.LoadModuleValues();
  141. }
  142. if(GUILayout.Button("Save"))
  143. {
  144. myTarget.SaveModuleValues(myTarget.preset);
  145. }
  146. }
  147. if(GUILayout.Button("Save As New"))
  148. {
  149. myTarget.SaveModuleValues();
  150. }
  151. GUILayout.EndHorizontal();
  152. }
  153. GUILayout.EndVertical();
  154. /// Save Load End
  155. ApplyChanges ();
  156. }
  157. GUILayout.EndVertical();
  158. if(myTarget.showModuleInspector)
  159. GUILayout.Space(20);
  160. }
  161. }
  162. }