void Awake() { //ゲーム開始時にGameManagerをinstanceに指定 if (instance == null) { instance = this; } //このオブジェクト以外にGameManagerが存在するとき else if (instance != this) { //このオブジェクトを破壊する Destroy(gameObject); } //シーン遷移時にこのオブジェクトを引き継ぐ DontDestroyOnLoad(gameObject); //Enemyを格納する配列生成 enemies = new List <Enemy>(); //DgGenerator取得 dungionScript = GetComponent <DgGenerator>(); InitGame(); }
static private void GenerateShit(int count) { //Dg version DirectedGraph = new DgGenerator(DbConn); //DirectedGraph.GenerateEventsIntoDb(count); //Pn version PetriNet = new PnGenerator(DbConn); //PetriNet.GenerateEventsIntoDb(count); //Generic workplaces Workplaces = new List <Workplace>(); for (var i = 0; i <= 6; i++) { Workplaces.Add(new Workplace(i)); } foreach (var wp in Workplaces) { switch (wp.Number) { case 0: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 1 || p.Number == 2)); break; case 1: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 3 || p.Number == 4)); break; case 2: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 4 || p.Number == 5 || p.Number == 6)); break; case 3: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 6)); break; case 4: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 3 || p.Number == 6)); break; case 5: wp.NextOnes.AddRange(Workplaces.Where(p => p.Number == 6)); break; case 6: break; } } Workplaces = Workplaces.OrderBy(wp => wp.Number).ToList(); for (var i = 0; i < count; i++) { //New Item PetriNet.NewToken(i); DirectedGraph.NewItem(i); var wp = Workplaces.FirstOrDefault(w => w.Number == 0); int nextIndex = GenerateNextMove(i, wp); if (nextIndex > 0) { wp = wp.NextOnes.ElementAt(nextIndex); DirectedGraph.NewEvent(wp, i); PetriNet.NewEvent(wp, i); } } }