public List <SkillSystemFx> GetSkillFxList(int skillPathID) { List <SkillSystemFx> skillFxList = new List <SkillSystemFx>(); SkillSystemPath skillPath = GetSkillPath(skillPathID); if (skillPath.ByteBuffer == null) { return(null); } for (int iFx = 0; iFx < skillPath.FxIdLength; iFx++) { SkillSystemFx skillFx = m_CfgEternityProxy.GetSkillFx(skillPath.GetFxIdArray()[iFx]); if (skillFx.ByteBuffer == null) { continue; } skillFxList.Add(skillFx); } return(skillFxList); }
/// <summary> /// 预加载玩家飞船的所有技能的资源 /// </summary> private void PreloadSkill() { // 读取当前Entity的飞船的所有技能 List <int> shipSkillIDList = new List <int>(); // TODO 技能. 现在技能使用物品的方式存储. 自己的技能由服务器通知. 服务器不会告知其他玩家的技能 if (m_Property.IsMain()) { PlayerSkillVO[] skills = m_SkillProxy.GetSkills(); for (int iSkill = 0; iSkill < skills.Length; iSkill++) { shipSkillIDList.Add(skills[iSkill].GetID()); } } else if (m_Property.GetNPCTemplateVO().ByteBuffer != null) { } // 预加载技能所需资源 for (int iSkill = 0; iSkill < shipSkillIDList.Count; ++iSkill) { SkillSystemGrow skillGrow = m_CfgSkillProxy.GetSkillGrow(shipSkillIDList[iSkill]); if (skillGrow.ByteBuffer == null) { continue; } SkillSystemPath skillPath = m_CfgSkillProxy.GetSkillPath(skillGrow.PathID); if (skillPath.ByteBuffer == null) { continue; } for (int iFx = 0; iFx < skillPath.FxIdLength; iFx++) { SkillSystemFx skillFx = m_CfgSkillProxy.GetSkillFx(skillPath.GetFxIdArray()[iFx]); // 加载技能特效资源 if (!string.IsNullOrEmpty(skillFx.CastFxBegin) && !"None".Equals(skillFx.CastFxBegin)) { LoadAssetAsync(skillFx.CastFxBegin); } if (!string.IsNullOrEmpty(skillFx.CastFxLoop) && !"None".Equals(skillFx.CastFxLoop)) { LoadAssetAsync(skillFx.CastFxLoop); } if (!string.IsNullOrEmpty(skillFx.CastFxEnd) && !"None".Equals(skillFx.CastFxEnd)) { LoadAssetAsync(skillFx.CastFxEnd); } if (!string.IsNullOrEmpty(skillFx.LauncherFx) && !"None".Equals(skillFx.LauncherFx)) { LoadAssetAsync(skillFx.LauncherFx); } if (!string.IsNullOrEmpty(skillFx.AssetName) && !"None".Equals(skillFx.AssetName)) { LoadAssetAsync(skillFx.AssetName); } if (!string.IsNullOrEmpty(skillFx.HitFx) && !"None".Equals(skillFx.HitFx)) { LoadAssetAsync(skillFx.HitFx); } // UNDONE 技能, 音效 // 加载音频资源 //AudioProxy audioProxy = DataManager.GetProxy<AudioProxy>(); //if (skillFx.BeforeAudio > 0) //{ // AudioVO audioVO = audioProxy.GetAudioByKey(skillFx.BeforeAudio); // if (audioVO.ByteBuffer != null && !"None".Equals(audioVO.AssetBundle) && !"None".Equals(audioVO.AssetName)) // AssetManager.LoadAsset<GameObject>(audioVO.AssetName, PreloadCallback); //} //if (skillFx.LauncherAudio > 0) //{ // AudioVO audioVO = audioProxy.GetAudioByKey(skillFx.LauncherAudio); // if (audioVO.ByteBuffer != null && !"None".Equals(audioVO.AssetBundle) && !"None".Equals(audioVO.AssetName)) // AssetManager.LoadAsset<GameObject>(audioVO.AssetName, PreloadCallback); //} //if (skillFx.HitAudio > 0) //{ // AudioVO audioVO = audioProxy.GetAudioByKey(skillFx.HitAudio); // if (audioVO.ByteBuffer != null && !"None".Equals(audioVO.AssetBundle) && !"None".Equals(audioVO.AssetName)) // AssetManager.LoadAsset<GameObject>(audioVO.AssetName, PreloadCallback); //} //if (skillFx.SkillAudio > 0) //{ // AudioVO audioVO = audioProxy.GetAudioByKey(skillFx.SkillAudio); // if (audioVO.ByteBuffer != null && !"None".Equals(audioVO.AssetBundle) && !"None".Equals(audioVO.AssetName)) // AssetManager.LoadAsset<GameObject>(audioVO.AssetName, PreloadCallback); //} } } }