public void PushUp() { ArchitectAntNum = Architect.Rate; WorkAntNum = Work.Rate; DeffenceAntNum = Deffence.Rate; TotalAntNum = 100.0f; FreeAntNum = TotalAntNum - (ArchitectAntNum + WorkAntNum + DeffenceAntNum); jobScript.ideal_Architect = ArchitectAntNum; jobScript.ideal_Soilder = DeffenceAntNum; jobScript.ideal_Mule = WorkAntNum; jobScript.ideal_Free = FreeAntNum; //無職リストを持ってきてジョブチェンジ var unemployedAnts = NestSystem.Instance.SpawnedAnt.Where(n => n.GetType() == typeof(UnemployedAnt) && n.Data.IsAlive); Debug.Log(unemployedAnts.Count()); for (int i = unemployedAnts.Count() - 1; i >= 0; i--) { jobScript.AssignJob(unemployedAnts.ElementAt(i)); } Debug.Log(ArchitectAntNum + ":" + WorkAntNum + ":" + DeffenceAntNum); }
// 実際のアリ生成関数 public IEnumerator Spawn() { while (true) { yield return(new WaitForSeconds(SpawnInterval)); if (!NestSystem.Instance.GetAnts <QueenAnt>().Any()) { continue; } // アリ生成 for (int i = 0; i < NestSystem.Instance.Data.CommonDataRegistry.GetCommonData <QueenAntCommonData>().BasicEfficiency; i++) { UnemployedAntData data = new UnemployedAntData() { Position = transform.position, }; var ant = NestSystem.Instance.InstantiateAnt(data); JobAssignmentSystem.AssignJob(ant); lastSpawnedTime = CurrentTime; } } }