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