Пример #1
0
    public uint AddCasterEffect(string effectKind, NkBattleChar kBattleChar)
    {
        if (this.m_bDontMakeEffect && NrTSingleton <NkEffectManager> .Instance.isEffectLimit(effectKind))
        {
            return(0u);
        }
        if (kBattleChar == null)
        {
            return(0u);
        }
        Nr3DCharBase nr3DCharBase = kBattleChar.Get3DChar();

        if (nr3DCharBase == null)
        {
            return(0u);
        }
        Transform effectTarget = nr3DCharBase.GetEffectTarget();

        if (effectTarget == null)
        {
            return(0u);
        }
        EFFECT_INFO effectInfo = NrTSingleton <NkEffectManager> .Instance.GetEffectInfo(effectKind);

        if (effectInfo == null)
        {
            return(0u);
        }
        GameObject goTarget  = nr3DCharBase.GetRootGameObject();
        Transform  effectPos = nr3DCharBase.GetEffectPos(effectInfo.EFFECT_POS);

        if (null != effectPos && effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
        {
            goTarget = effectPos.gameObject;
        }
        NkEffectUnit kEffectUnit;

        if (effectInfo.EFFECT_POS == eEFFECT_POS.CENTERDM)
        {
            kEffectUnit = new NkEffectUnit(effectInfo, goTarget);
        }
        else
        {
            kEffectUnit = new NkEffectUnit(effectInfo, kBattleChar);
        }
        return(this._AddEffect(kEffectUnit));
    }