WaveObserver donne aux spawners les unités à instancier ainsi que l'intervalle de création de ceux-ci LevelConfig passe de Level vers LevelManager puis il est utilisé dans l'instance de WaveObserver
41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine.Tilemaps;
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace GatherAndDefend.LevelEditor
|
|
{
|
|
public class Level : ScriptableObject, IEnumerable<TilemapData>
|
|
{
|
|
private Rect _bounds;
|
|
public Rect Bounds => _bounds;
|
|
[SerializeField]
|
|
private List<TilemapData> _data = new List<TilemapData>();
|
|
[SerializeField]
|
|
private LevelConfig _waveConfig;
|
|
public void SaveFromTilemap(Tilemap tilemap)
|
|
{
|
|
var data = new TilemapData();
|
|
data.SaveFromTilemap(tilemap);
|
|
_data.Add(data);
|
|
}
|
|
public void LoadToTilemap(Tilemap tilemap)
|
|
{
|
|
var data = _data.Find(x => x.Key == tilemap.name);
|
|
if (data == null) return;
|
|
|
|
data.LoadToTilemap(tilemap);
|
|
}
|
|
public LevelConfig WaveConfig { get { return _waveConfig; } }
|
|
|
|
public IEnumerator<TilemapData> GetEnumerator()
|
|
{
|
|
return _data.GetEnumerator();
|
|
}
|
|
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return _data.GetEnumerator();
|
|
}
|
|
}
|
|
} |