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>();
tilemap.tileAnchor = Vector3.zero;
tilemap.gameObject.AddComponent<TilemapRenderer>();
tilemapData.LoadToTilemap(tilemap);
tilemap.transform.SetParent(targ.transform);
tilemapData.LoadToTilemap(tilemap);
}
_infoText = string.Empty;
EditorSceneManager.MarkAllScenesDirty();

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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