Example #1
0
        /**添加控制脚本**/
        override protected void AddScript(GameObject go)
        {
            //增加控制中心控制脚本
            if (go.GetComponent <ActionControler>() != null)
            {
                return;
            }
            Controller             = go.AddComponent <ActionControler>();
            Controller.Me          = this;
            Controller.Me.Animator = Controller.Me.GoCloth.GetComponent <Animator>();
            //增加状态控制脚本
            var statuController = go.AddComponent <StatuControllerBase>();

            Controller.StatuController  = statuController;
            statuController.MeControler = Controller as ActionControler;

            //增加移动控制脚本
            var monsterMoveController = go.AddComponent <MoveControllerBase>();

            monsterMoveController.AnimationEventController = Controller.AnimationEventController;
            monsterMoveController.MeController             = Controller as ActionControler;
            Controller.MoveController = monsterMoveController;
            monsterMoveController.AnimationParameter = Controller.AnimationParameter;

            //增加攻击控制脚本
            var attackController = go.AddComponent <AttackControllerBase>();

            attackController.MeController = Controller as ActionControler;
            Controller.AttackController   = attackController;

            //增加技能控制脚本
            SkillController skillController = Controller.SkillController = go.AddComponent <SkillController>();

            skillController.MeController = Controller as ActionControler;

            Controller.AnimationEventController = GoCloth.GetComponent <AnimationEventController>() ?? GoCloth.AddComponent <AnimationEventController>();
            Controller.AnimationEventController.skillController = Controller.SkillController;

            SysTrap sysTrapVo = GetTrapVo().SysTrapVo;

            switch (sysTrapVo.Type)
            {
            case 1:      //铁锚类陷阱
                var trapAnchorControl = GoCloth.AddComponent <TrapAnchorControl>();
                trapAnchorControl.ActionControler = Controller as ActionControler;
                break;

            case 2:      //触碰接触伤害类陷阱
                var trapColliderControl = GoCloth.AddComponent <TrapCollideControl>();
                trapColliderControl.ActionControler = Controller as ActionControler;
                break;
            }

            BoxCollider2D = GoCloth.GetComponent <BoxCollider2D>();
        }
Example #2
0
        /**创建副本陷阱**/

        public TrapDisplay CreateTrap(DisplayVo vo)
        {
            if (vo == null)
            {
                return(null);
            }
            vo.Type = DisplayType.Trap;
            var display = new TrapDisplay();

            objectList.Add(display);
            SysTrap sysTrapVo = BaseDataMgr.instance.GetTrapVoById(vo.Id);

            vo.ClothUrl = "Model/Trap/" + sysTrapVo.Model + "/Model/BIP.assetbundle";
            display.SetVo(vo);
            return(display);
        }
Example #3
0
 // Use this for initialization
 private void Start()
 {
     _selfTransform   = transform;
     _hitSoundList    = new List <string>();
     _attackSoundList = new List <string>();
     LeftCdTimes      = new float[11];
     TotalCdTimes     = new float[11];
     SkillMpCost      = new int[11];
     SkillList        = new List <int>();
     if (MeController.Me.Type == DisplayType.ROLE)
     {
         LearnedSkillList = new List <uint>();
         var      playerVo = MeController.Me.GetMeVoByType <PlayerVo>();
         string[] skillIds = StringUtils.GetValueListFromString(playerVo.SysRoleBaseInfo.SkillList);
         foreach (string skill in skillIds)
         {
             LearnedSkillList.Add(uint.Parse(skill)); //角色基础配置表读取角色的技能id
         }
     }
     else if (MeController.Me.Type == DisplayType.MONSTER)
     {
         LearnedSkillList = new List <uint>();
         var vo = MeController.Me.GetMeVoByType <MonsterVo>();
         if (vo != null)
         {
             SysMonsterVo monsterVo = vo.MonsterVO;
             string[]     skillIds  = StringUtils.GetValueListFromString(monsterVo.skill_ids);
             foreach (string skill in skillIds)
             {
                 LearnedSkillList.Add(uint.Parse(skill)); //从怪物表读取怪物的技能id
             }
         }
     }
     else if (MeController.Me.Type == DisplayType.Trap)
     {
         LearnedSkillList = new List <uint>();
         var vo = MeController.Me.GetVo() as TrapVo;
         if (vo != null)
         {
             SysTrap  trapVo   = vo.SysTrapVo;
             string[] skillIds = StringUtils.GetValueListFromString(trapVo.SkillIds);
             foreach (string skill in skillIds)
             {
                 LearnedSkillList.Add(uint.Parse(skill)); //从陷阱表读取怪物的技能id
             }
         }
     }
     else if (MeController.Me.Type == DisplayType.PET)
     {
         LearnedSkillList = new List <uint>();
         var vo = MeController.Me.GetVo() as PetVo;
         if (vo != null)
         {
             /* SysPet sysPetVo = vo.SysPet;
              * string[] skillIds = StringUtils.GetValueListFromString(sysPetVo.unique_skill.ToString());
              * foreach (string skill in skillIds)
              * {
              *   LearnedSkillList.Add(uint.Parse(skill)); //从宠物表读取怪物的技能id
              * }*/
             LearnedSkillList.Add(vo.SkillId);
         }
     }
     InitTotalCdTime();
     InitSkillDelayDic();
 }