public override void Process() { // Process unit queue QueuedUnit delete = null; if (m_queue.Count > 0) { QueuedUnit unit = m_queue[0]; unit.percentage += Time.deltaTime; if (unit.percentage >= unit.buildTime) { // Initialise the unit. UnitTemplate template = new UnitTemplate(); Unit newUnit = template.Load(unit.prefab, m_position - new Vector3(15f, 0f, 15f), new Vector3(0f, 90f, 0f)); Main.m_unitList.Add(newUnit); // Cleanup UserInterface.m_sidePanel.UpdateQueue(unit.prefab.ID, false); delete = unit; } } if (delete != null) m_queue.Remove(delete); base.Process(); }
// Create a new dozer at map spawn private static void SpawnDozer(Vector3 a_pos) { UnitPrefab unitPrefab; m_res.prefabs.unitPrefabs.TryGetValue(1, out unitPrefab); UnitTemplate template = new UnitTemplate(); Unit newUnit = template.Load(unitPrefab, a_pos - new Vector3(15f, 0f, 15f), new Vector3(0f, 90f, 0f)); m_unitList.Add(newUnit); InputHandler.SpawnSelect(ref newUnit); }