public static void DuplicateLocation(LocationCreator window) { EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); bool isEmpty = window.CheckIfNewLocationNameIsEmpty(); if (isEmpty == true) { window.SendLocationStringIsMissingMessage(); return; } bool isExisting = window.CheckIfLocationExists(); if (isExisting == true) { window.SendMessageLocationAlreadyExists(); return; } string LocationRootPath = "Assets/" + StaticProjectSettings.projectName + "/Scenes/Locations/"; string guid = AssetDatabase.CreateFolder("Assets/" + StaticProjectSettings.projectName + "/Scenes/Locations", window.newLocationName); string locationObjectPathGuid = AssetDatabase.CreateFolder("Assets/" + StaticProjectSettings.projectName + "/Resources/Locations", window.newLocationName); string locationObjectPath = AssetDatabase.GUIDToAssetPath(locationObjectPathGuid); string newFolderPath = AssetDatabase.GUIDToAssetPath(guid); //Copy Settings Files window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Settings.unity", newFolderPath); //Copy Gameplay File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Gameplay.unity", newFolderPath); //Copy Ground File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Ground.unity", newFolderPath); //Copy Props File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Props.unity", newFolderPath); //Copy Buildings File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Buildings.unity", newFolderPath); //Copy Lighting File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Lighting.unity", newFolderPath); //Copy Editor File window.CopySceneFile(LocationRootPath + window.selectedLocation + "/" + window.selectedLocation, "_Editor.unity", newFolderPath); //Create Location Object Location locationAsset = ScriptableObject.CreateInstance <Location>(); locationAsset.locationName = window.newLocationName; AssetDatabase.CreateAsset(locationAsset, locationObjectPath + "/" + window.newLocationName + ".Asset"); AssetDatabase.SaveAssets(); AssetDatabase.MoveAsset(AssetDatabase.GetAssetPath(locationAsset), newFolderPath); AssetDatabase.Refresh(); LocationHandler locationHandle = Object.FindObjectOfType <LocationHandler>(); locationHandle.locationData = locationAsset; window.RefreshLocationsList(); }
private static void OpenLocationInteface() { window = GetWindow <LocationCreator>(); //Load Locations List window.locationsList = Resources.Load("Locations/Location List") as LocationList; foreach (LocationList item in Resources.FindObjectsOfTypeAll(typeof(LocationList)) as LocationList[]) { window.locationsList = item; } if (window.locationsList != null) { window.RefreshLocationsList(); } window.position = GUIHelper.GetEditorWindowRect().AlignCenter(800, 500); window.RefreshLocationsList(); }
LocationCreator GetRefreshedWindowReference() { window = GetWindow <LocationCreator>(); //Load Locations List window.locationsList = Resources.Load("Locations/Location List") as LocationList; foreach (LocationList item in Resources.FindObjectsOfTypeAll(typeof(LocationList)) as LocationList[]) { window.locationsList = item; } if (window.locationsList != null) { window.RefreshLocationsList(); } window.RefreshLocationsList(); return(window); }
public static void AddNewLocationToList(string locationName, LocationCreator window) { AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); LocationList locationList = Resources.Load("Locations/Location List") as LocationList; string LocationRootPath = "Locations"; string fullpath = LocationRootPath + "/" + locationName + "/" + locationName; Location locationData = Resources.Load(fullpath) as Location; window.locationsList.locations.Add(locationData); AssetDatabase.SaveAssets(); window.RefreshLocationsList(); }
public static void DeleteLocation(LocationCreator window) { EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); string fullpath = "Locations" + "/" + window.selectedLocation + "/" + window.selectedLocation; Location locationData = Resources.Load(fullpath) as Location; window.locationsList.locations.Remove(locationData); string SceneRootPath = "Assets/" + StaticProjectSettings.projectName + "/Scenes/Locations/"; string LocationPath = "Assets/" + StaticProjectSettings.projectName + "/Resources/Locations/"; for (int i = 0; i < window.availableLocations.Count; i++) { if (window.availableLocations[i].Text == window.selectedLocation) { window.availableLocations.Remove(window.availableLocations[i]); } } FileUtil.DeleteFileOrDirectory(SceneRootPath + window.selectedLocation + "/"); FileUtil.DeleteFileOrDirectory(LocationPath + window.selectedLocation + "/"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); window.selectedLocation = window.locationsList.locations[0].locationName; window.RefreshLocationsList(); }