public void PlayWorldEffect(EnumEffectType effectType)
    {
        uint effectId = GetEffectId(effectType);

        if (effectId == 0)
        {
            return;
        }

        Transform  parent   = m_Property.GetOwner().GetSkinRootTransform();
        Vector3    position = parent.position;
        Quaternion rotation = parent.rotation;

        parent = null;

        string           path             = m_CfgEternityProxy.GetEffectPath(effectId);
        EffectController effectController = EffectManager.GetInstance().CreateEffect(path, EffectManager.GetEffectGroupNameInSpace(m_Property.IsMain()));

        effectController.transform.SetParent(null, false);
        effectController.transform.localPosition = position;
        effectController.transform.localRotation = rotation;
        effectController.SetCreateForMainPlayer(m_Property.IsMain());

        effectController.PlayFX();
        if (!m_EffectTable.ContainsKey(effectId))
        {
            m_EffectTable.Add(effectId, effectController);
        }
        BehaviorManager.Instance.LogFormat(m_Agent, string.Format($"PlayEffect effectType:{effectType} effectId:{effectId} path:{path}"));
    }
    private uint GetEffectId(EnumEffectType effectType)
    {
        Model model = m_CfgEternityProxy.GetItemModelByKey(m_Property.GetItemID());
        uint  id    = (uint)m_CfgEternityProxy.GetEffectIdByEffectType(model.Id, effectType);

        BehaviorManager.Instance.LogFormat(m_Agent, $"GetEffectId effectType:{effectType} EffectId:{id}");

        return(id);
    }
    public void StopEffect(EnumEffectType effectType)
    {
        uint effectId = GetEffectId(effectType);

        if (effectId == 0)
        {
            return;
        }

        string path = m_CfgEternityProxy.GetEffectPath((uint)effectId);

        if (m_EffectTable.ContainsKey(effectId))
        {
            m_EffectTable[effectId].StopFX();
            m_EffectTable.Remove(effectId);
        }

        BehaviorManager.Instance.LogFormat(m_Agent, string.Format($"StopEffect effectType:{effectType} effectId:{effectId} path:{path}"));
    }
    public void PlayEffect(EnumEffectType effectType)
    {
        uint effectId = GetEffectId(effectType);

        if (effectId == 0)
        {
            return;
        }

        string           path             = m_CfgEternityProxy.GetEffectPath(effectId);
        EffectController effectController = EffectManager.GetInstance().CreateEffect(path, EffectManager.GetEffectGroupNameInSpace(m_Property.IsMain()));

        effectController.transform.SetParent(m_Property.GetRootTransform(), false);
        effectController.SetCreateForMainPlayer(m_Property.IsMain());

        effectController.PlayFX();
        if (!m_EffectTable.ContainsKey(effectId))
        {
            m_EffectTable.Add(effectId, effectController);
        }
        BehaviorManager.Instance.LogFormat(m_Agent, string.Format($"PlayEffect effectType:{effectType} effectId:{effectId} path:{path}"));
    }
Esempio n. 5
0
    public int GetEffectIdByEffectType(uint modelId, EnumEffectType effectType)
    {
        Model?modelVoTemp = m_Config.ModelsByKey(modelId);

        if (!modelVoTemp.HasValue)
        {
            return(0);
        }

        Model model = modelVoTemp.Value;

        switch (effectType)
        {
        case EnumEffectType.Cruise:
            return(model.CruiseFx);

        case EnumEffectType.Fight:
            return(model.FightFx);

        case EnumEffectType.OverloadLoop:
            return(model.OverloadLoopFx);

        case EnumEffectType.OverloadEnd:
            return(model.OverloadEndFx);

        case EnumEffectType.DeathGlideTail:
            return(model.DeadTailFx);

        case EnumEffectType.DeadExplosion:
            return(model.DeadExplosionFx);

        case EnumEffectType.Revive:
            return(model.RebirthFx);

        case EnumEffectType.DeadBall:
            return(model.DeadBallFx);

        case EnumEffectType.DeadLeap:
            return(model.DeadLeapFx);

        case EnumEffectType.ReformerBeginFx:
            return(model.ReformerBeginFx);

        case EnumEffectType.ReformerLoopFx:
            return(model.ReformerLoopFx);

        case EnumEffectType.ReformerEndFx:
            return(model.ReformerEndFx);

        case EnumEffectType.BornFx:
            return(model.BornFx);

        case EnumEffectType.JumpOwn:
            return(model.JumpOwn);

        case EnumEffectType.JumpThird:
            return(model.JumpThird);

        case EnumEffectType.JumpEnd:
            return(model.JumpEnd);

        default:
            return(0);
        }
    }