private void Start() { _activeTextures = new List <Texture2D>(); randomizeTeleportDirection(); _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(TeleportingState)).Random <TeleportingState>(); if (_state == TeleportingState.Invisible) { TransitionToInvisible(); } else if (_state == TeleportingState.Visible) { TransitionToVisible(); } else if (_state == TeleportingState.Growing) { TransitionToGrowing(); } else if (_state == TeleportingState.Shrinking) { TransitionToShrinking(); } if (_state == TeleportingState.Teleport || _state == TeleportingState.TeleportVisible) { TransitionToTeleportVisible(); } if (_state == TeleportingState.TeleportBack || _state == TeleportingState.TeleportBackVisible) { TransitionToTeleportBackVisible(); } _t = (float)Rng.Dbl(); }
private void TransitionToTeleportBackVisible() { renderer.gameObject.SetActive(true); goToPosition.gameObject.SetActive(false); UpdateTextures(renderer, Generate(1, 0, 0), goToPosition, Generate(1, 1, 1)); _state = TeleportingState.TeleportBackVisible; _t = 0; }
private void TransitionToShrinking() { renderer.material.SetTexture("_DisplacementMask", deathMask); renderer.material.SetFloat("_DefaultShrink", 0); renderer.material.SetFloat("_NormalPush", 0); renderer.material.SetFloat("_Shrink_Faces_Amplitude", _deathShrinkFacesAmplitude); _state = TeleportingState.Shrinking; _t = 0; }
private void TransitionToVisible() { renderer.material.SetTexture("_DisplacementMask", _lifeMask); renderer.material.SetFloat("_DefaultShrink", _lifeShrink); renderer.material.SetFloat("_NormalPush", _lifeNormalPush); renderer.material.SetFloat("_Shrink_Faces_Amplitude", _lifeShrinkFacesAmplitude); _state = TeleportingState.Visible; _t = 0; }
private void TransitionToTeleportingBack() { renderer.gameObject.SetActive(true); goToPosition.gameObject.SetActive(true); rendererParticles.transform.localPosition = goToPosition.transform.localPosition; rendererParticles.transform.rotation = Quaternion.LookRotation(renderer.transform.position - goToPosition.transform.position); rendererParticles.Play(); _state = TeleportingState.TeleportBack; _t = 0; }