puisqu'on utilise des assembly definitions maintenant, il est important que les scripts soient posés dans le dossier Scripts pour qu'ils soient accessibles aux autres scripts. Il a donc fallu déplacer les scripts se trouvant dans le dossier LevelEditor.
47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine.Tilemaps;
|
|
using UnityEngine;
|
|
using System;
|
|
|
|
namespace GatherAndDefend.LevelEditor
|
|
{
|
|
[Serializable]
|
|
public class TilemapData
|
|
{
|
|
[SerializeField]
|
|
private string _key;
|
|
[SerializeField]
|
|
private List<TileData> tiles;
|
|
|
|
public string Key => _key;
|
|
|
|
public void LoadToTilemap(Tilemap reference)
|
|
{
|
|
foreach (TileData data in tiles)
|
|
{
|
|
reference.SetTile(data.Position, data.Tile);
|
|
}
|
|
}
|
|
public void SaveFromTilemap(Tilemap reference)
|
|
{
|
|
_key = reference.name;
|
|
tiles = new List<TileData>();
|
|
BoundsInt bounds = reference.cellBounds;
|
|
for (int i = bounds.xMin; i <= bounds.xMax; i++)
|
|
{
|
|
for (int j = bounds.yMin; j <= bounds.yMax; j++)
|
|
{
|
|
Vector3Int position = new Vector3Int(i, j);
|
|
TileBase tile = reference.GetTile(position);
|
|
if (!tile) continue;
|
|
var tileData = new TileData(position, tile);
|
|
tiles.Add(tileData);
|
|
}
|
|
}
|
|
}
|
|
public TilemapData()
|
|
{
|
|
tiles = new List<TileData>();
|
|
}
|
|
}
|
|
} |