private void CreateEntities() { m_entityMapping.Clear(); m_deadList.Clear(); var entities = new List <Entity>(); foreach (var genome in m_population.Genomes) { var tank = TankFactory.CreateFromGenome(genome); if (tank == null) { Log.ErrorFmt( "Failed to create entity for generation {0} genome {1}", m_population.Generation, genome.Id); continue; } var renderComponent = tank.GetComponent <TankRenderComponent>(); Debug.Assert(renderComponent != null); switch (genome.GenomeType) { case GenomeType.Random: renderComponent.BodyColor = Color.Magenta; break; case GenomeType.Clone: renderComponent.BodyColor = Color.Blue; break; case GenomeType.CrossOver: renderComponent.BodyColor = Color.Red; break; } m_entityMapping[tank.Id] = genome.Id; entities.Add(tank); } m_currentRoundTime = 0f; m_lastHitTime = -5f; PositionEntities(entities); }