|
|
- using UnityEngine;
- using System.Collections;
-
- public class AnimationScript : MonoBehaviour {
-
- public bool isAnimated = false;
-
- public bool isRotating = false;
- public bool isFloating = false;
- public bool isScaling = false;
-
- public Vector3 rotationAngle;
- public float rotationSpeed;
-
- public float floatSpeed;
- private bool goingUp = true;
- public float floatRate;
- private float floatTimer;
-
- public Vector3 startScale;
- public Vector3 endScale;
-
- private bool scalingUp = true;
- public float scaleSpeed;
- public float scaleRate;
- private float scaleTimer;
-
- // Use this for initialization
- void Start () {
-
- }
-
- // Update is called once per frame
- void Update () {
-
-
-
- if(isAnimated)
- {
- if(isRotating)
- {
- transform.Rotate(rotationAngle * rotationSpeed * Time.deltaTime);
- }
-
- if(isFloating)
- {
- floatTimer += Time.deltaTime;
- Vector3 moveDir = new Vector3(0.0f, 0.0f, floatSpeed);
- transform.Translate(moveDir);
-
- if (goingUp && floatTimer >= floatRate)
- {
- goingUp = false;
- floatTimer = 0;
- floatSpeed = -floatSpeed;
- }
-
- else if(!goingUp && floatTimer >= floatRate)
- {
- goingUp = true;
- floatTimer = 0;
- floatSpeed = +floatSpeed;
- }
- }
-
- if(isScaling)
- {
- scaleTimer += Time.deltaTime;
-
- if (scalingUp)
- {
- transform.localScale = Vector3.Lerp(transform.localScale, endScale, scaleSpeed * Time.deltaTime);
- }
- else if (!scalingUp)
- {
- transform.localScale = Vector3.Lerp(transform.localScale, startScale, scaleSpeed * Time.deltaTime);
- }
-
- if(scaleTimer >= scaleRate)
- {
- if (scalingUp) { scalingUp = false; }
- else if (!scalingUp) { scalingUp = true; }
- scaleTimer = 0;
- }
- }
- }
- }
- }
|