// Use this for initialization void Start() { if (skills.Length == 0) { return; } LCharacter chatacter = GetComponent <LCharacter>(); SkillParams _params = new SkillParams(); _params.cds = skills; _params.type = type; chatacter.AddParam(cdName, _params); for (int i = 0; i < skills.Length; i++) { LCharacterSkillAction a = new LCharacterSkillAction(); a.SkillId = skills[i].skillId; a.priority = priority; a.button = button; a.cdState = state; a.cdName = cdName; a.skillState = i; a.cdParam = _params; _params.button = button; chatacter.AddAction(a); } }
// Use this for initialization void Start() { LCharacter chatacter = GetComponent <LCharacter>(); LCharacterSkillAction a = new LCharacterSkillAction(); SkillParams _params = new SkillParams(); _params.type = type; CDData[] cds = new CDData[1] { new CDData() }; cds[0].cd = cd; _params.cds = cds; if (cdName == null || cdName.Length == 0) { cdName = skillName; } chatacter.AddParam(cdName, _params); a.SkillId = skillName; a.priority = priority; a.button = button; a.skillState = 0; a.cdState = CdState.NORMAL; a.cdName = cdName; _params.button = button; chatacter.AddAction(a); }
// Use this for initialization void Start() { LChatacter chatacter = GetComponent <LChatacter>(); LCharacterSkillAction a = new LCharacterSkillAction(); CDParams _params = new CDParams(); CDData[] cds = new CDData[1] { new CDData() }; cds[0].cd = cd; _params.cds = cds; string cdName = "cd_" + skillName; chatacter.AddParam(cdName, _params); a.SkillId = skillName; a.priority = priority; a.button = button; a.skillState = 0; a.cdState = CdState.NORMAL; a.cdName = cdName; chatacter.AddAction(a); }
public override IEnumerator onInit(LChatacterRecourceInterface loader, LCharacterInterface character, AddCoroutineFun fun) { hasLoaded = false; CharactorLoadHandle handle0 = loader.LoadSkillDataFile(SkillId, fun); while (!handle0.isFinish) { yield return(null); } skillData = (LCHSkillData)handle0.asset; role.type = 1; role.objId = -1; character.UpdateSkillRange(cdName, skillData.subSkills[skillState].skillRange, skillData.subSkills[skillState].skillWidth); // objs[role.objId] = role; objList = new ObjectContain[skillData.subSkills[skillState].objs.Length]; for (int i = 0, l = skillData.subSkills[skillState].objs.Length; i < l; i++) { var o = skillData.subSkills[skillState].objs[i]; ObjectContain oc = new ObjectContain(); oc.SetInformation(o); objs[o.id] = oc; objList[i] = oc; if (o.id == -1)//不加载主模型。 { continue; } else if (o.type == 1)//对象(特效,模型...)。 { //Debug.LogError("load " + oc.mod); var handle = loader.loadResource(oc.mod_name, oc.mod, fun); while (!handle.isFinish) { yield return(1); } if (null != handle.asset) { if (handle.asset == null) { Debug.LogError("找不到资源,是否没打包 ? " + oc.mod); } else { oc.baseGameObject = (GameObject)handle.asset; if (null != oc.baseGameObject) { oc.gameobject = GameObject.Instantiate(oc.baseGameObject); oc.gameobject.SetActive(false); oc.gameobject.name = o.name; oc.gameobject.hideFlags = HideFlags.None; oc.systems = oc.gameobject.GetComponentsInChildren <ParticleSystem>(); } } } } else if (o.type == 2)//(碰撞体)。 { GameObject g = new GameObject(); g.layer = character.GetAttackLayer(); g.SetActive(false); g.AddComponent <BoxCollider>(); g.hideFlags = HideFlags.DontSave; oc.gameobject = g; g.name = o.name; } else if (o.type == 3)//模型本身碰撞体。暂不连接。 { continue; } else if (o.type == 4)//加载声音 { GameObject g = new GameObject(); g.name = o.name; oc.gameobject = g; loader.loadResource(oc.mod_name, oc.mod, fun); } } for (int i = 0, c0 = skillData.subSkills[skillState].events.Count; i < c0; i++) { var _e = skillData.subSkills[skillState].events[i]; var contain = objs[_e.objId]; contain.events.Add(_e); } for (int i = 0, c0 = skillData.subSkills[skillState].channels.Count; i < c0; i++) { var _c = skillData.subSkills[skillState].channels[i]; var contain = objs[_c.objId]; contain.channels.Add(_c); } if (skillState < skillData.subSkills.Length - 1) { { if (skillState == 0) { CDData [] ary = new CDData[skillData.subSkills.Length]; for (int i = 0; i < skillData.subSkills.Length; i++) { ary[i] = new CDData(); } ary[0].cd = cdParam.cds[0].cd; ary[0].skillId = cdParam.cds[0].skillId; cdParam.cds = ary; //public CDData[] cds; } LCharacterSkillAction a = new LCharacterSkillAction(); a.SkillId = SkillId; a.priority = priority; a.button = button; a.skillState = skillState + 1; a.cdState = cdState; a.cdName = cdName; a.cdParam = cdParam; a.cdParam.cds[a.skillState].skillId = SkillId; a.cdParam.cds[a.skillState].cd = skillData.subSkills[a.skillState].cd; character.AddAction(a); } } hasLoaded = true; }