CarSpawnManipulator.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using TrafficSimulation;
  5. using UnityEditor;
  6. using UnityEngine;
  7. public class CarSpawnManipulator : MonoBehaviour
  8. {
  9. private void Start()
  10. {
  11. }
  12. private void Update()
  13. {
  14. }
  15. }
  16. [CustomEditor(typeof(CarSpawnManipulator))]
  17. public class CarSpawnManipulatorEditor : Editor
  18. {
  19. private SpawnWatcher[] spawns;
  20. private int spawnRate = 2;
  21. private void OnEnable()
  22. {
  23. this.spawns = ((CarSpawnManipulator) target).GetComponentsInChildren<SpawnWatcher>();
  24. }
  25. public override void OnInspectorGUI()
  26. {
  27. EditorGUILayout.LabelField("Sets All Car Spawns in the Conditions!");
  28. //Debug.Log("Found Spawns: " + this.spawns.Length);
  29. if (GUILayout.Button("Position Y to 0", GUILayout.Width(256)))
  30. {
  31. SetPosY(0);
  32. }
  33. if (GUILayout.Button("BoxCollider Size (6,1,6)", GUILayout.Width(256)))
  34. {
  35. SetSize(10,10);
  36. }
  37. this.spawnRate = EditorGUILayout.IntSlider("Spawn Rate", this.spawnRate,0, 10);
  38. if (GUILayout.Button("Set Spawn Rate", GUILayout.Width(256)))
  39. {
  40. SetSpawnRate(spawnRate);
  41. }
  42. }
  43. private void SetSpawnRate(int rate)
  44. {
  45. CarSituationSpawner[] spawners = ((CarSpawnManipulator)target).GetComponentsInChildren<CarSituationSpawner>();
  46. foreach(CarSituationSpawner spawner in spawners)
  47. {
  48. spawner.spawnRate = rate;
  49. }
  50. }
  51. private void SetSize(float xVal, float yVal)
  52. {
  53. foreach (SpawnWatcher spawn in this.spawns)
  54. {
  55. spawn.gameObject.GetComponent<BoxCollider>().size = new Vector3(6, 1, 6);
  56. }
  57. }
  58. private void SetPosY(float value)
  59. {
  60. foreach(SpawnWatcher spawn in this.spawns)
  61. {
  62. spawn.gameObject.transform.position = new Vector3(spawn.gameObject.transform.position.x, value, spawn.gameObject.transform.position.z);
  63. }
  64. }
  65. }