La estructura del proyecto va a ser de la siguiente manera:
- Editor: aca se guardan scripts que tengan que ver con el editor de Unity (probablemente casi no tocaremos esta carpeta)
- Scenes: las escenas de Unity seran nuestros niveles (solo puede trabajar una persona en cada escena)
- Materials: los materiales que utilizara nuestro juego
- Sprites: sprites creados en photoshop, texturas, etc.
- Sounds: sonidos, duh.
- Scripts: Aca organizaremos todos los scripts utilizando un patron MVC.
- Scripts/Models: modelos de nuestro juego (por ejemplo un Tile, un Player), aca se almacenara la informacion de todas las entidades.
- Scripts/Controllers: controladores (estos son los scripts que se le van a poner a los componentes)
La idea de MVC es separar en el codigo lo que corresponde a cada cosa:
- Los modelos van a ser nuestra representacion de la data, habra modelos para Player, Level, etc
public class Player
{
private int Health { get; set; }
public Player()
{
this.Health = 100;
}
}
Los modelos solo contendran informacion, y logica que corresponda a este modelo en especifico, no van a heredar de MonoBehaviour
- Controllers, los controladores van a tener logica para el juego, seran nuestros managers.
Por ejemplo un EnemyController se va a encargar de toda la logica que maneje a un enemigo.
public class EnemyController : MonoBehaviour
{
public Enemy enemy;
void Start()
{
instantiateEnemy();
moveEnemytoInitialPosition();
}
void Update()
{
if(enemyInPlayerRange())
{
attack();
}
}
}