MenuEditor.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using UnityEngine;
  2. using UnityEditor;
  3. public class MenuEditor : MonoBehaviour
  4. {
  5. [MenuItem("Citizens PRO/Walking people")]
  6. private static void CreateWalkingPeople()
  7. {
  8. CreatePath(PathType.PeoplePath);
  9. }
  10. [MenuItem("Citizens PRO/Audience Path")]
  11. private static void CreateAudiencePath()
  12. {
  13. CreatePath(PathType.AudiencePath);
  14. }
  15. [MenuItem("Citizens PRO/Audience")]
  16. private static void CreateAudience()
  17. {
  18. var populationSystemManager = GetPopulationSystemManager();
  19. Selection.activeGameObject = populationSystemManager.gameObject;
  20. ActiveEditorTracker.sharedTracker.isLocked = true;
  21. populationSystemManager.isConcert = true;
  22. }
  23. [MenuItem("Citizens PRO/Talking people")]
  24. private static void CreateTalkingPeople()
  25. {
  26. var populationSystemManager = GetPopulationSystemManager();
  27. Selection.activeGameObject = populationSystemManager.gameObject;
  28. ActiveEditorTracker.sharedTracker.isLocked = true;
  29. populationSystemManager.isStreet = true;
  30. }
  31. private static void CreatePath(PathType pathType)
  32. {
  33. GetPopulationSystemManager();
  34. GameObject newPath = new GameObject { name = "New path" };
  35. NewPath newPathComponent = newPath.AddComponent<NewPath>();
  36. newPathComponent.PathType = pathType;
  37. Selection.activeGameObject = newPath;
  38. }
  39. private static PopulationSystemManager GetPopulationSystemManager()
  40. {
  41. if (FindObjectOfType<PopulationSystemManager>() == null)
  42. {
  43. string[] managerPrefabs = AssetDatabase.FindAssets("Population System t:Prefab");
  44. if (managerPrefabs.Length > 0)
  45. {
  46. string managerPath = AssetDatabase.GUIDToAssetPath(managerPrefabs[0]);
  47. PrefabUtility.InstantiatePrefab(AssetDatabase.LoadAssetAtPath<GameObject>(managerPath));
  48. }
  49. }
  50. return FindObjectOfType<PopulationSystemManager>();
  51. }
  52. }