/**添加控制脚本**/ 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>(); }
/**创建副本陷阱**/ 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); }
// 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(); }