StandingPeopleConcertEditor.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. [CustomEditor(typeof(StandingPeopleConcert))]
  5. public class StandingPeopleConcertEditor : Editor
  6. {
  7. public override void OnInspectorGUI()
  8. {
  9. StandingPeopleConcert _SPC = target as StandingPeopleConcert;
  10. SceneView.RepaintAll();
  11. if(_SPC.peopleCount < 1) _SPC.peopleCount = 1;
  12. if(_SPC.showSurface)
  13. _SPC.surface.GetComponent<MeshRenderer>().enabled = true;
  14. else
  15. _SPC.surface.GetComponent<MeshRenderer>().enabled = false;
  16. DrawDefaultInspector();
  17. if(_SPC.SurfaceType.ToString() == "Rectangle"){
  18. if(_SPC.isCircle)
  19. _SPC.SpawnRectangleSurface();
  20. _SPC.planeSize = EditorGUILayout.Vector2Field(new GUIContent("Rectangle size:", "Rectangle size / Размер квадрата"), _SPC.planeSize);
  21. _SPC.isCircle = false;
  22. }
  23. else if(_SPC.SurfaceType.ToString() == "Circle"){
  24. if(!_SPC.isCircle)
  25. _SPC.SpawnCircleSurface();
  26. _SPC.circleDiametr = EditorGUILayout.FloatField(new GUIContent("Circle diameter:", "Circle diameter / Диаметр круга"), _SPC.circleDiametr);
  27. _SPC.isCircle = true;
  28. }
  29. _SPC.showSurface = EditorGUILayout.Toggle(new GUIContent("Show surface:", "Show surface / Показать поверхность"), _SPC.showSurface);
  30. EditorGUILayout.Space();
  31. _SPC.peopleCount = EditorGUILayout.IntField(new GUIContent("People count:", "People count / Количество людей"), _SPC.peopleCount);
  32. EditorGUILayout.Space();
  33. _SPC.target = (GameObject) EditorGUILayout.ObjectField(new GUIContent("View target:", "Target / Цель"), _SPC.target, typeof(GameObject), true);
  34. EditorGUILayout.Space();
  35. _SPC.looking = EditorGUILayout.Toggle(new GUIContent("Looking:", "Look for target / Слежение за таргетом"), _SPC.looking);
  36. EditorGUILayout.Space();
  37. _SPC.damping = EditorGUILayout.FloatField(new GUIContent("Damping:", "Speed rotation (smooth) / Скорость поворота (смягчение)"), _SPC.damping);
  38. EditorGUILayout.Space();
  39. _SPC.highToSpawn = EditorGUILayout.FloatField(new GUIContent("High to spawn:", "High to spawn of people / Высота проверки спауна людей"), _SPC.highToSpawn);
  40. EditorGUILayout.Space();
  41. GUI.backgroundColor = Color.green;
  42. if (GUILayout.Button("Populate!"))
  43. {
  44. _SPC.PopulateButton();
  45. }
  46. GUI.backgroundColor = Color.white;
  47. if (GUILayout.Button("Remove people"))
  48. {
  49. _SPC.RemoveButton();
  50. }
  51. }
  52. }