Beispiel #1
0
 //buff 开始执行
 public virtual void BuffStart()
 {
     if (!string.IsNullOrEmpty(buffInfo.EffectName))
     {
         effect          = EffectManager.Instance.GetEffect(buffInfo.EffectName);
         effect.duration = buffInfo.KeepTime;
         if (effect != null)
         {
             Transform bone = buffOwner.GetBone(buffInfo.BindBone);
             if (bone != null)
             {
                 effect.Bind(bone);
             }
         }
     }
 }
Beispiel #2
0
    void PlayEffect(uint skillID, List <Entity> targets = null)
    {
        CSVSkill skillInfo = CSVManager.GetSkillCfg(skillID);

        if (string.IsNullOrEmpty(skillInfo.castEffect))
        {
            return;
        }

        EffectEntity effect = EffectManager.Instance.GetEffect(skillInfo.castEffect);

        effect.Init(eDestroyType.Time, skillInfo.castEffectDuration);
        //特效绑定的骨骼

        if (!string.IsNullOrEmpty(skillInfo.castEffectBindBone))
        {
            Transform bone = null;

            if (skillInfo.castEffectBindBone.CompareTo("self") == 0)
            {
                bone = m_object.transform;
            }
            else
            {
                bone = m_entity.GetBone(skillInfo.castEffectBindBone);
            }

            if (bone != null)
            {
                effect.Bind(bone);
            }
        }
        //如果特效没有绑定位置,则默认位置为释放者的位置
        else
        {
            effect.Pos     = m_entity.Pos;
            effect.Forward = m_entity.Forward;
        }
    }