private void RenderSpellCardLife() { if (_scLifeState == eSpellCardLifeState.Creating) { _scLifeTime++; // 缩放 float scale = MathUtil.GetEaseOutQuadInterpolation(SpellCardLifeCreatingScale, 1, _scLifeTime, SpellCardLifeCreatingDuration); _scLifeTf.localScale = new Vector3(scale, scale, 1); scale = MathUtil.GetEaseOutQuadInterpolation(SpellCardLifeBorderCreatingScale, 1, _scLifeTime, SpellCardLifeCreatingDuration); _scLifeBorderTf.localScale = new Vector3(scale, scale, 1); // 旋转 _scLifeTf.localEulerAngles = new Vector3(0, 0, SpellCardLifeOmega * _scLifeTime); _scLifeBorderTf.localEulerAngles = new Vector3(0, 0, -SpellCardLifeOmega * _scLifeTime); if (_scLifeTime >= SpellCardLifeCreatingDuration) { _scLifeState = eSpellCardLifeState.Normal; } } else if (_scLifeState == eSpellCardLifeState.Normal) { _scLifeTime++; // 旋转 _scLifeTf.localEulerAngles = new Vector3(0, 0, SpellCardLifeOmega * _scLifeTime); _scLifeBorderTf.localEulerAngles = new Vector3(0, 0, -SpellCardLifeOmega * _scLifeTime); // 根据血量缩放 float factor = 1 - _curHp / _maxHp; float scale = Mathf.Lerp(1, SpellCardLifeEndScale, factor); _scLifeTf.localScale = new Vector3(scale, scale, 1); _scLifeBorderTf.localScale = new Vector3(scale, scale, 1); } }
public void ShowSpellCardHpAura(bool isShow) { if (_isShowSCHpAura != isShow) { _isShowSCHpAura = isShow; _scLifeGo.SetActive(isShow); if (isShow) { _scLifeState = eSpellCardLifeState.Creating; _scLifeTime = 0; _scLifeTf.localScale = new Vector3(SpellCardLifeCreatingScale, SpellCardLifeCreatingScale, 1); _scLifeBorderTf.localScale = new Vector3(SpellCardLifeBorderCreatingScale, SpellCardLifeBorderCreatingScale, 1); } } }