Felix Boucher d10677db6d tweaks to LevelManager
le fait qu'il faille updater des tiles du tilemap posait un réel problème

création d'un système d'héritage pour que les game objects et les tiles puissent cohabiter dans une même game loop

- ILevelObject contient des fonctions de start, de destroy, d'update, d'égalité et une position

- LevelTile et LevelObject héritent de ILevelObject et peuvent être hérité par des tiles ou des MonoBehaviours.

- le level manager est un monobehaviour singleton qui update tous les ILevelObjects à chaque frame.
2023-05-27 20:38:42 -04:00

22 lines
659 B
C#

using UnityEngine;
using UnityEngine.Tilemaps;
using UnityEngine.UIElements;
/// <summary>
/// can be inherited by MonoBehaviours in order to be added to the level manager
/// </summary>
public abstract class LevelObject : MonoBehaviour, ILevelObject
{
public Vector3 Position => transform.position;
void Awake()
{
if (LevelManager.Instance.Has<LevelTile>(tile => tile.Position.Approximately(Position))) return;
LevelManager.Instance.Add(this);
}
public abstract void LevelStart();
public abstract void LevelDestroy();
public abstract void LevelUpdate();
public abstract bool Equals(ILevelObject other);
}