Пример #1
0
    void PlayEffect(eDamageEvent eEvent)
    {
        SHUtils.ForToList(m_pInfo.m_pEffectInfo, (pInfo) =>
        {
            var strPrefabName = string.Empty;
            switch (eEvent)
            {
            case eDamageEvent.Tick:
                if (m_pInfo.m_iLifeTick == pInfo.m_iPlayToLifeTick)
                {
                    strPrefabName = pInfo.m_strPrefabName;
                }
                break;

            case eDamageEvent.Start:
                if (true == pInfo.m_bIsPlayToStart)
                {
                    strPrefabName = pInfo.m_strPrefabName;
                }
                break;

            case eDamageEvent.Delete:
                if (true == pInfo.m_bIsPlayToDelete)
                {
                    strPrefabName = pInfo.m_strPrefabName;
                }
                if (true == pInfo.m_bIsDeleteWithDamage)
                {
                    pInfo.SetDisableObject();
                }
                break;

            case eDamageEvent.Crash:
                if (true == pInfo.m_bIsPlayToCrash)
                {
                    strPrefabName = pInfo.m_strPrefabName;
                }
                break;
            }

            if (true == string.IsNullOrEmpty(strPrefabName))
            {
                return;
            }

            var pEffect = CreateEffect(strPrefabName);
            if (null == pEffect)
            {
                return;
            }

            pInfo.SetEffectObject(pEffect);
            SetupEffectTransform(pEffect, pInfo);
            pEffect.SetActive(true);
        });
    }
Пример #2
0
    void PlaySound(eDamageEvent eEvent)
    {
        SHUtils.ForToList(m_pInfo.m_pSoundInfo, (pInfo) =>
        {
            switch (eEvent)
            {
            case eDamageEvent.Tick:
                if (m_pInfo.m_iLifeTick == pInfo.m_iPlayToLifeTick)
                {
                    Single.Sound.PlayEffect(pInfo.m_strClipName);
                }
                break;

            case eDamageEvent.Start:
                if (true == pInfo.m_bIsPlayToStart)
                {
                    Single.Sound.PlayEffect(pInfo.m_strClipName);
                }
                break;

            case eDamageEvent.Delete:
                if (true == pInfo.m_bIsPlayToDelete)
                {
                    Single.Sound.PlayEffect(pInfo.m_strClipName);
                }
                break;

            case eDamageEvent.Crash:
                if (true == pInfo.m_bIsPlayToCrash)
                {
                    Single.Sound.PlayEffect(pInfo.m_strClipName);
                }
                break;
            }
        });
    }