public void ShowDamage(int damage, float timeForShow, Vector3 position, Vector3 lookAt) { var labelColor = damageLabelStartColor.Evaluate(damage / 100f); damageRenderer.material.color = labelColor; backgroundRenderer.material.color = backgroundStartColor; transform.position = position; transform.LookAt(lookAt); damageLabel.text = $"-{damage.ToString()}"; var screenAnimation = DOTween.Sequence(); screenAnimation.Append(transform.DOMoveY(transform.position.y + liftingHeightInUnits, timeForShow)); screenAnimation.Join(backgroundRenderer.material.DOColor(Color.clear, timeForShow)); labelColor.a = 0; screenAnimation.Join(damageRenderer.material.DOColor(labelColor, timeForShow)); screenAnimation.OnComplete(() => ObjectDeactivation?.Invoke(this)); }
private void OnParticleSystemStopped() { ObjectDeactivation?.Invoke(this); }