public override void Preload(ISkillCellData cellData, SkillBase skillBase) { //m_dataIndex = param.damageCellIndex; m_oneDamageInfo = (OneDamageInfo)cellData; m_skillBase = skillBase; GameObject frameStopObj = CoreEntry.gGameObjPoolMgr.InstantiateSkillCell("Skill/Cell/frameStop"); if (frameStopObj != null) { frameStopObj.transform.parent = transform; ISkillCell skillCell = frameStopObj.GetComponent <ISkillCell>(); skillCell.Preload(m_oneDamageInfo.frameStopDesc, m_skillBase); m_skillBase.AddSkillCell(frameStopObj); } if (m_oneDamageInfo.cameraShakeDesc != null) { GameObject cellObj = CoreEntry.gGameObjPoolMgr.InstantiateSkillCell(m_oneDamageInfo.cameraShakeDesc.prefabPath); cellObj.transform.parent = transform; ISkillCell skillCell = cellObj.GetComponent <ISkillCell>(); skillCell.Preload(m_oneDamageInfo.cameraShakeDesc, m_skillBase); m_skillBase.AddSkillCell(cellObj); } }
public void Preload(ActorObj own, int skillID) { m_skillID = skillID; m_onlyShowSkillScope = true; m_actor = own; m_skillDesc = ConfigManager.Instance.Skill.GetSkillConfig(m_skillID); if (m_skillDesc == null) { return; } SkillClassDisplayDesc skillClass = m_gameDBMgr.GetSkillClassDisplayDesc(m_skillDesc.Get <int>("skillDisplayID")); if (skillClass == null) { return; } //吟唱阶段 for (int i = 0; i < skillClass.prepareStageDataList.Count; ++i) { GameObject cellObj = CoreEntry.gGameObjPoolMgr.InstantiateSkillCell(skillClass.prepareStageDataList[i].prefabPath); cellObj.transform.parent = transform; ISkillCell skillCell = cellObj.GetComponent <ISkillCell>(); skillCell.Preload(skillClass.prepareStageDataList[i], this); AddSkillCell(cellObj); } //技能元素 for (int i = 0; i < skillClass.castStageDataList.Count; ++i) { GameObject cellObj = CoreEntry.gGameObjPoolMgr.InstantiateSkillCell(skillClass.castStageDataList[i].prefabPath); if (cellObj == null) { LogMgr.UnityError("Can not found prefab: " + skillClass.castStageDataList[i].prefabPath + " ! of skillID " + skillClass.skillID + " : " + skillClass.castStageDataList[i].ToString()); continue; } cellObj.transform.parent = transform; ISkillCell skillCell = cellObj.GetComponent <ISkillCell>(); skillCell.Preload(skillClass.castStageDataList[i], this); AddSkillCell(cellObj); } // 动作特效加载 LuaTable skill_action = CoreEntry.gSkillMgr.GetSkillActon(skillID); if (skill_action != null && skill_action.Get <string>("skilleffect").Length > 0) { GameObject efxObj = CoreEntry.gGameObjPoolMgr.InstantiateEffect(skill_action.Get <string>("skilleffect")); if (efxObj != null) { CoreEntry.gGameObjPoolMgr.Destroy(efxObj); } else { LogMgr.LogError("can not find attackEfxPrefab path: " + skill_action.Get <string>("skilleffect")); } } // 受击特效加载 string pfx_hurt = m_skillDesc.Get <string>("pfx_hurt"); if (pfx_hurt.Length > 0) { GameObject efxObj = CoreEntry.gGameObjPoolMgr.InstantiateEffect(pfx_hurt); if (efxObj != null) { CoreEntry.gGameObjPoolMgr.Destroy(efxObj); } } DestroyEfx(); }