void LoadSceneAsset() { filePath = EditorUtility.OpenFilePanel("打开", filePath, "asset"); if (string.IsNullOrEmpty(filePath) || !filePath.Contains(".asset")) { return; } MapWorldAsset mapWorldAsset = (MapWorldAsset)AssetDatabase.LoadAssetAtPath("Assets" + filePath.Replace(Application.dataPath, ""), typeof(MapWorldAsset)); if (mapWorldAsset != null) { for (int i = 0; i < mapWorldAsset.mapScenes.Count; i++) { currMapScene = new GameObject("Map" + (i + 1)).AddComponent <MapScene>(); currMapScene.offsetX = mapWorldAsset.mapScenes[i].offsetX; currMapScene.offsetY = mapWorldAsset.mapScenes[i].offsetY; currMapScene.mapSizeX = mapWorldAsset.mapScenes[i].mapSizeX; currMapScene.mapSizeY = mapWorldAsset.mapScenes[i].mapSizeY; currMapScene.worldType = mapWorldAsset.mapScenes[i].worldType; currMapScene.layers = new List <MapEditorSortLayer>(mapWorldAsset.mapScenes[i].layers); for (int n = 0; n < mapWorldAsset.mapScenes[i].layerItems.Count; n++) { currMapScene.layerItems.Add(new MapLayerItem()); currMapScene.layerItems[n].posList = new List <int>(mapWorldAsset.mapScenes[i].layerItems[n].posList); currMapScene.layerItems[n].items = new List <MapResourceItem>(mapWorldAsset.mapScenes[i].layerItems[n].items); } mapSceneList.Add(currMapScene); currMapScene.FreshMapGrid(); currMapScene.UpdateMap(); } } FreshResource(); }
void OnFocus() { mapSceneList = GameObject.FindObjectsOfType <MapScene>().ToList <MapScene>(); if (currMapScene == null && mapSceneList.Count > 0) { currMapScene = mapSceneList[0]; } if (currMapScene != null) { FreshResource(); currMapScene.FreshMapGrid(); } Selection.selectionChanged = OnSelectObj; SceneView.onSceneGUIDelegate += this.OnSceneGUI; }