Exemple #1
0
    /// <summary>
    /// 判断特效是否作为特效发射点的子节点创建
    /// </summary>
    public bool IfFxAttachedToParent(SkillFxType fxType, SkillSystemFx skillFx)
    {
        switch (fxType)
        {
        case SkillFxType.Launch:
            return(skillFx.LauncherFxType == 1);

        case SkillFxType.Hit:
            return(skillFx.HitFxType == 1);

        case SkillFxType.PeriodicBegin:
        case SkillFxType.PeriodicLoop:
        case SkillFxType.PeriodicEnd:
            return(true);

        default:
            return(false);
        }
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    /// <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);
                //}
            }
        }
    }