MapDataSO GetOrCreateMapDataSO() { MapExporter mapExporter = (MapExporter)target; MapDataSO mapDataSO = (MapDataSO)AssetDatabase.LoadAssetAtPath(ResourcePaths.GetMapPathFromAssets(mapExporter.m_MapName), typeof(MapDataSO)); if (mapDataSO == null) { mapDataSO = ScriptableObject.CreateInstance <MapDataSO> (); AssetDatabase.CreateAsset(mapDataSO, ResourcePaths.GetMapPathFromAssets(mapExporter.m_MapName) + ".asset"); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } return(mapDataSO); }
void ExportMap() { MapExporter mapExporter = (MapExporter)target; if (string.IsNullOrEmpty(mapExporter.m_MapName)) { Debug.LogError("Cannot save a map without Name"); return; } MapDataSO mapDataSO = GetOrCreateMapDataSO(); mapDataSO.m_MapDataInfo = mapExporter.CreateMapDataInfo(); //AssetDatabase.AddObjectToAsset (mapDataSO, PATH_MAP_EXPORT); EditorUtility.SetDirty(mapDataSO); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); }
public MapInfo LoadMap(string aMapName) { string path = ResourcePaths.GetMapPath(aMapName); MapDataSO mapDataSO = (MapDataSO)Resources.Load(path, typeof(MapDataSO)); GameObject mapContainer = new GameObject(); mapContainer.name = MAP_NAME + aMapName; mapContainer.transform.SetParent(transform, false); MapInfo mapInfo = mapContainer.AddComponent <MapInfo> (); CreateGround(mapContainer, mapDataSO.m_MapDataInfo.m_GroundDataInfo); CreateCameraLimit(mapContainer, mapDataSO.m_MapDataInfo.m_CameraLimitDataInfo, mapInfo); CreateCollider(mapContainer, mapDataSO.m_MapDataInfo.m_ColliderDataInfo, mapInfo, mapDataSO.m_MapDataInfo.m_ActivatedColliderLayers); mapInfo.m_ListSpawnPoint = mapDataSO.m_MapDataInfo.m_SpawnPointDataInfo; CreateTeleport(mapContainer, mapDataSO.m_MapDataInfo.m_TeleportDataInfo, mapInfo); return(mapInfo); }