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}")); }
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); } }