private void Start()
 {
     _lifeMask                 = renderer.material.GetTexture("_DisplacementMask");
     _lifeShrink               = renderer.material.GetFloat("_DefaultShrink");
     _lifeNormalPush           = renderer.material.GetFloat("_NormalPush");
     _lifeShrinkFacesAmplitude = renderer.material.GetFloat("_Shrink_Faces_Amplitude");
     _state = Enum.GetValues(typeof(BlinkingState)).Random <BlinkingState>();
     if (_state == BlinkingState.Invisible)
     {
         TransitionToInvisible();
     }
     else if (_state == BlinkingState.Visible)
     {
         TransitionToVisible();
     }
     else if (_state == BlinkingState.Growing)
     {
         TransitionToGrowing();
     }
     else if (_state == BlinkingState.Shrinking)
     {
         TransitionToShrinking();
     }
     _t = (float)Rng.Dbl();
 }
 private void TransitionToInvisible()
 {
     renderer.material.SetTexture("_DisplacementMask", deathMask);
     renderer.material.SetFloat("_DefaultShrink", _deathShrink);
     renderer.material.SetFloat("_NormalPush", _deathNormalPush);
     renderer.material.SetFloat("_Shrink_Faces_Amplitude", _deathShrinkFacesAmplitude);
     _state = BlinkingState.Invisible;
     _t     = 0;
 }