|
@@ -260,6 +260,18 @@ public class GameMapEditor : EditorWindow
|
|
|
doRepaint = false;
|
|
doRepaint = false;
|
|
|
Repaint();
|
|
Repaint();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (ev.type == EventType.KeyDown && ev.keyCode == KeyCode.C && ev.control)
|
|
|
|
|
+ {
|
|
|
|
|
+ CopyMap();
|
|
|
|
|
+ ev.Use();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (ev.type == EventType.KeyDown && ev.keyCode == KeyCode.V && ev.control)
|
|
|
|
|
+ {
|
|
|
|
|
+ PasteMap();
|
|
|
|
|
+ ev.Use();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void OnUnRedo()
|
|
private void OnUnRedo()
|
|
@@ -2019,6 +2031,31 @@ public class GameMapEditor : EditorWindow
|
|
|
return res;
|
|
return res;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void CopyMap()
|
|
|
|
|
+ {
|
|
|
|
|
+ if (asset == null || mapIdx < 0 || mapIdx >= asset.maps.Count) return;
|
|
|
|
|
+
|
|
|
|
|
+ GameMap map = asset.maps[mapIdx];
|
|
|
|
|
+ string mapJson = JsonUtility.ToJson(map);
|
|
|
|
|
+ EditorGUIUtility.systemCopyBuffer = mapJson;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void PasteMap()
|
|
|
|
|
+ {
|
|
|
|
|
+ if (asset == null) return;
|
|
|
|
|
+
|
|
|
|
|
+ string mapJson = EditorGUIUtility.systemCopyBuffer;
|
|
|
|
|
+ if (string.IsNullOrEmpty(mapJson)) return;
|
|
|
|
|
+
|
|
|
|
|
+ GameMap newMap = JsonUtility.FromJson<GameMap>(mapJson);
|
|
|
|
|
+ if (newMap == null) return;
|
|
|
|
|
+
|
|
|
|
|
+ Undo.RecordObject(asset, "Paste Map");
|
|
|
|
|
+ asset.maps.Add(newMap);
|
|
|
|
|
+ mapIdx = asset.maps.Count - 1;
|
|
|
|
|
+ doRepaint = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
#endregion
|
|
#endregion
|
|
|
// ----------------------------------------------------------------------------------------------------------------
|
|
// ----------------------------------------------------------------------------------------------------------------
|
|
|
}
|
|
}
|