|
|
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- public class CubeWithCrystals : MonoBehaviour
- {
- public GameObject crystals;
- public bool triggeranimate;
- public bool triggeranimate1;
-
- private void Update()
- {
- //for testing purposes
- if (triggeranimate == true)
- {
- Animate();
- triggeranimate = false;
- }
- if (triggeranimate1 == true)
- {
- returnToPosition();
- triggeranimate1 = false;
- }
- }
-
- IEnumerator GrowCoroutine()
- {
- float elapsedTime = 0;
- Vector3 startPosition = crystals.transform.position;
- Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y + 1.0f, crystals.transform.position.z);
- float time = 0.8f;
- while (elapsedTime < time)
- {
- transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
- yield return new WaitForEndOfFrame();
- elapsedTime += Time.deltaTime;
- }
- crystals.transform.position = endPosition;
- }
- IEnumerator ShrinkCoroutine()
- {
- float elapsedTime = 0;
- Vector3 startPosition = crystals.transform.position;
- Vector3 endPosition = new Vector3(crystals.transform.position.x, crystals.transform.position.y - 1.0f, crystals.transform.position.z);
- float time = 0.8f;
- while (elapsedTime < time)
- {
- transform.position = Vector3.Lerp(startPosition, endPosition, (elapsedTime / time));
- yield return new WaitForEndOfFrame();
- elapsedTime += Time.deltaTime;
- }
- crystals.transform.position = endPosition;
- }
-
- public void Animate()
- {
- StartCoroutine(GrowCoroutine());
- }
- public void returnToPosition()
- {
- StartCoroutine(ShrinkCoroutine());
- }
- }
|