Ejemplo n.º 1
0
        public List <Unit> SpawnUnits(List <Cell> cells)
        {
            List <Unit> ret = new List <Unit>();

            List <Cell> freeCells = cells.FindAll(h => h.IsTaken == false);

            freeCells = freeCells.OrderBy(h => _rnd.Next()).ToList();

            for (int i = 0; i < NumberOfPlayers; i++)
            {
                for (int j = 0; j < UnitsPerPlayer; j++)
                {
                    var cell = freeCells.ElementAt(0);
                    freeCells.RemoveAt(0);
                    cell.IsTaken = true;

                    var unitEntity = UnitPrefab.Instantiate().First();
                    var unit       = unitEntity.Get <Unit>();
                    unitEntity.Transform.Position = cell.GetPosition() + new Vector3(0, 0, 0);
                    unit.PlayerNumber             = i;
                    unit.Cell = cell;
                    unit.Initialize();
                    //unit.Transform.parent = UnitsParent;
                    ret.Add(unitEntity.Get <Unit>());
                }
            }
            return(ret);
        }
Ejemplo n.º 2
0
 // Start is called before the first frame update
 void Start()
 {
     if (unitPrefab != null)
     {
         SpriteRenderer prefabSpriteRenderer = UnitPrefab.GetComponent <SpriteRenderer>();
         this.sprite = prefabSpriteRenderer.sprite;
         this.color  = prefabSpriteRenderer.color;
     }
 }