예제 #1
0
        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;
            }
        }
예제 #2
0
        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();
        }
예제 #3
0
        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();
            }
        }
예제 #4
0
 /// <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);
         }
     }
 }
예제 #5
0
        /// <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);
        }