// Use this for initialization protected virtual void Start() { healthCount = 0f; healthState = StartHealthState; Material mat = renderer.material; switch (healthState) { case HEALTH_STATE.HEALTH: MaxWalkSpeed = MoveDesc.HealthWalkSpeed; MaxRunSpeed = MoveDesc.HealthRunSpeed; MaxStamina = MoveDesc.HealthStamina; mat.color = Colors.White; break; case HEALTH_STATE.OUTBREAK: MaxWalkSpeed = MoveDesc.OutbreakWalkSpeed; MaxRunSpeed = MoveDesc.OutbreakRunSpeed; MaxStamina = MoveDesc.OutbreakStamina; mat.color = OutbreakBodyColor; break; default: MaxWalkSpeed = MoveDesc.HealthWalkSpeed; MaxRunSpeed = MoveDesc.HealthRunSpeed; MaxStamina = MoveDesc.HealthStamina; mat.color = Colors.White; break; } stamina = MaxStamina; animHash_Dead = Animator.StringToHash("Base Layer.Dead"); }
protected virtual void Update() { if (healthState == HEALTH_STATE.IMMUNITY) { healthCount += Time.deltaTime; if (healthCount > ImmunityTime) { healthCount = 0f; healthState = HEALTH_STATE.HEALTH; } } }
public virtual void Dead() { animator.SetTrigger("IsDead"); healthState = HEALTH_STATE.DEAD; var colorOverLifetime = particle.colorOverLifetime; var gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(new Color32(0, 128, 255, 255), 0.0f), new GradientColorKey(Color.white, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(1.0f, 0.72f), new GradientAlphaKey(0.0f, 1.0f) } ); colorOverLifetime.color = new ParticleSystem.MinMaxGradient(gradient); particle.Play(); }