Pull request #22: sauvegarder la position / échelle locale

Merge in CGD/gather-and-defend from bug/LevelEditor/ResizeAndMoveTilemaps to main

* commit '6c96d31544b44fc4ff86c501829ed7a426e344ad':
  sauvegarder la position / échelle locale
This commit is contained in:
Felix-gabriel Boucher-luneau 2023-06-15 17:12:34 +00:00
commit ede4cbdf5c
5 changed files with 665 additions and 663 deletions

View File

@ -122,8 +122,8 @@ Important considerations :
var tilemap = new GameObject(tilemapData.Key).AddComponent<Tilemap>(); var tilemap = new GameObject(tilemapData.Key).AddComponent<Tilemap>();
tilemap.tileAnchor = Vector3.zero; tilemap.tileAnchor = Vector3.zero;
tilemap.gameObject.AddComponent<TilemapRenderer>(); tilemap.gameObject.AddComponent<TilemapRenderer>();
tilemapData.LoadToTilemap(tilemap);
tilemap.transform.SetParent(targ.transform); tilemap.transform.SetParent(targ.transform);
tilemapData.LoadToTilemap(tilemap);
} }
_infoText = string.Empty; _infoText = string.Empty;
EditorSceneManager.MarkAllScenesDirty(); EditorSceneManager.MarkAllScenesDirty();

File diff suppressed because it is too large Load Diff

View File

@ -314,6 +314,8 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 0 _renderOrder: 0
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}
- _key: Entities - _key: Entities
_tiles: _tiles:
- _tile: {fileID: 11400000, guid: a387250a316b97e43be83b85980101e1, type: 2} - _tile: {fileID: 11400000, guid: a387250a316b97e43be83b85980101e1, type: 2}
@ -409,6 +411,8 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 1 _renderOrder: 1
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}
- _key: Spawners - _key: Spawners
_tiles: _tiles:
- _tile: {fileID: 11400000, guid: 4aaf448680c7f8a438a9a5861c622a55, type: 2} - _tile: {fileID: 11400000, guid: 4aaf448680c7f8a438a9a5861c622a55, type: 2}
@ -432,3 +436,5 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 2 _renderOrder: 2
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}

View File

@ -314,6 +314,8 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 0 _renderOrder: 0
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}
- _key: Entities - _key: Entities
_tiles: [] _tiles: []
_isInvisible: 0 _isInvisible: 0
@ -321,6 +323,8 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 1 _renderOrder: 1
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}
- _key: Spawners - _key: Spawners
_tiles: _tiles:
- _tile: {fileID: 11400000, guid: 4aaf448680c7f8a438a9a5861c622a55, type: 2} - _tile: {fileID: 11400000, guid: 4aaf448680c7f8a438a9a5861c622a55, type: 2}
@ -344,3 +348,5 @@ MonoBehaviour:
_isTrigger: 0 _isTrigger: 0
_renderOrder: 2 _renderOrder: 2
_renderLayer: Default _renderLayer: Default
_position: {x: 0, y: 0}
_scale: {x: 1, y: 1}

View File

@ -26,11 +26,18 @@ namespace GatherAndDefend.LevelEditor
private int _renderOrder; private int _renderOrder;
[SerializeField] [SerializeField]
private string _renderLayer; private string _renderLayer;
[SerializeField]
private Vector2 _position;
[SerializeField]
private Vector2 _scale;
public string Key => _key; public string Key => _key;
public void LoadToTilemap(Tilemap reference) public void LoadToTilemap(Tilemap reference)
{ {
reference.transform.localPosition = _position;
reference.transform.localScale = _scale;
var rend = reference.GetComponent<TilemapRenderer>(); var rend = reference.GetComponent<TilemapRenderer>();
rend.sortingOrder = _renderOrder; rend.sortingOrder = _renderOrder;
rend.sortingLayerName = _renderLayer; rend.sortingLayerName = _renderLayer;
@ -63,7 +70,8 @@ namespace GatherAndDefend.LevelEditor
_isInvisible = reference.gameObject.layer == INVISIBLE_LAYER; _isInvisible = reference.gameObject.layer == INVISIBLE_LAYER;
_renderLayer = reference.GetComponent<TilemapRenderer>().sortingLayerName; _renderLayer = reference.GetComponent<TilemapRenderer>().sortingLayerName;
_renderOrder = reference.GetComponent<TilemapRenderer>().sortingOrder; _renderOrder = reference.GetComponent<TilemapRenderer>().sortingOrder;
_position = reference.transform.localPosition;
_scale = reference.transform.localScale;
_tiles = new List<TileData>(); _tiles = new List<TileData>();
@ -95,6 +103,8 @@ namespace GatherAndDefend.LevelEditor
{nameof(_isTrigger), _isTrigger }, {nameof(_isTrigger), _isTrigger },
{nameof(_renderOrder), _renderOrder }, {nameof(_renderOrder), _renderOrder },
{nameof(_renderLayer), _renderLayer }, {nameof(_renderLayer), _renderLayer },
{nameof(_position), new float[]{_position.x, _position.y, 0 } },
{nameof(_scale), new float[]{ _scale.x, _scale.y, 0 } },
{nameof(_tiles), _tiles.FindAll(x => !(x.Tile is LevelTile)) {nameof(_tiles), _tiles.FindAll(x => !(x.Tile is LevelTile))
.Select(x => new Dictionary<string, object>() { .Select(x => new Dictionary<string, object>() {
{nameof(x.Position), new float[] { x.Position.x, x.Position.y, x.Position.z } }, {nameof(x.Position), new float[] { x.Position.x, x.Position.y, x.Position.z } },
@ -116,6 +126,8 @@ namespace GatherAndDefend.LevelEditor
var trigger = dict[nameof(_isTrigger)].ToBool(); var trigger = dict[nameof(_isTrigger)].ToBool();
var renderOrder = dict[nameof(_renderOrder)].ToInt(); var renderOrder = dict[nameof(_renderOrder)].ToInt();
var renderLayer = dict[nameof(_renderLayer)].ToString(); var renderLayer = dict[nameof(_renderLayer)].ToString();
var position = dict[nameof(_position)].ToVector3();
var scale = dict[nameof(_scale)].ToVector3();
var tiles = dict[nameof(_tiles)]; var tiles = dict[nameof(_tiles)];
//get grid //get grid
@ -132,6 +144,8 @@ namespace GatherAndDefend.LevelEditor
tilemap.gameObject.AddComponent<TilemapRenderer>(); tilemap.gameObject.AddComponent<TilemapRenderer>();
tilemap.transform.SetParent(grid.transform); tilemap.transform.SetParent(grid.transform);
} }
tilemap.transform.localPosition = position;
tilemap.transform.localScale = scale;
renderer = tilemap.GetComponent<TilemapRenderer>(); renderer = tilemap.GetComponent<TilemapRenderer>();
//populate tilemap according to specs //populate tilemap according to specs