public static void Start(StgEventAbs stgEvent) { switch (stgEvent.type) { case StgEventType.HeroBorn: StgHeroBornDealer.Start(stgEvent); break; case StgEventType.ZombieBorn: StgZombieBornDealer.Start(stgEvent); break; case StgEventType.HeroMove: break; case StgEventType.PrefabBorn: break; case StgEventType.PrefabBornZombie: break; case StgEventType.Conversation: break; case StgEventType.NPCMove: break; } }
public static void Start(StgEventAbs stgEvent) { // 设置英雄的位置和转向 HeroController.INSTANCE.transform.position = stgEvent.HeroBornPosition; HeroController.INSTANCE.transform.eulerAngles = new Vector3(0f, stgEvent.HeroBornEulerAngles.y, 0f); HeroController.INSTANCE.GetComponent <GameCameraController>().sceneCamera.transform.localEulerAngles = new Vector3(stgEvent.HeroBornEulerAngles.x, 0f, 0f); //HeroController.INSTANCE.agent.enabled = true; HeroController.INSTANCE.StartCurrentEvent(); }
public static void Start(StgEventAbs stgEvent) { StgHeroMoveDealer dealer = new GameObject("StgHeroMoveDealer").AddComponent <StgHeroMoveDealer>(); dealer.stgEvent = stgEvent; dealer.position = stgEvent.HeroMovePosition; dealer.notifyZombie = stgEvent.HeroMoveNotifyZombie; dealer.preEvent = HeroController.INSTANCE.GetPreviousEvent(); if (!stgEvent.isBlock) { HeroController.INSTANCE.StartCurrentEvent(); } }
/// <summary> /// 控制结点 /// </summary> public void StartCurrentEvent() { if (!this.isLoaded) { int count = this.stgData.evtList.Count; if (this.eventIndex >= count) { // 所有结点完成,开协程 任务结束 base.StartCoroutine("MissionCompletedRoutine"); } else { StgEventAbs stgEvent = this.stgData.evtList[this.eventIndex]; this.eventIndex++; StgEventDealer.Start(stgEvent); } } }
/// <summary> /// Start /// </summary> /// <param name="stgEvent"></param> /// <returns></returns> public static StgZombieBornDealer Start(StgEventAbs stgEvent) { StgZombieBornDealer dealer = new GameObject("StgZombieBornDealer").AddComponent <StgZombieBornDealer>(); dealer.stgEvent = stgEvent; for (int i = 0; i < stgEvent.WaveCount; i++) { ZombieBornPool pool = new ZombieBornPool(stgEvent.Wave(i)); dealer.totalCount += pool.count; dealer.pools.Add(pool); } zombieDealers.Add(dealer); // 如果为true,则先不进行下一步,所有这波僵尸死掉了,再进行下一步 if (!stgEvent.isBlock) { HeroController.INSTANCE.StartCurrentEvent(); } return(dealer); }