using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class MoveBlock : MonoBehaviour
|
|
{
|
|
public float moveYAmount = 20.0f;
|
|
public float moveSpeed = 1.0f;
|
|
public float waitTime = 5.0f;
|
|
public float rotateSpeed = 10.0f;
|
|
|
|
private float startY;
|
|
private bool goingUp = true;
|
|
private float stoppedUntilTime;
|
|
private float moveUpAmount;
|
|
|
|
protected virtual void Start ()
|
|
{
|
|
startY = transform.position.y;
|
|
|
|
moveUpAmount = Mathf.Abs(moveYAmount);
|
|
|
|
if(moveYAmount < 0.0f)
|
|
{
|
|
startY -= moveYAmount;
|
|
goingUp = false;
|
|
}
|
|
|
|
stoppedUntilTime = Time.time + waitTime;
|
|
}
|
|
|
|
protected virtual void Update ()
|
|
{
|
|
if( Time.time > stoppedUntilTime)
|
|
{
|
|
if(goingUp)
|
|
{
|
|
if(transform.position.y < startY+moveUpAmount)
|
|
{
|
|
Vector3 newPosition = transform.position;
|
|
newPosition.y += Time.deltaTime * moveSpeed;
|
|
transform.position = newPosition;
|
|
}
|
|
else
|
|
{
|
|
goingUp = false;
|
|
stoppedUntilTime = Time.time + waitTime;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(transform.position.y > startY)
|
|
{
|
|
Vector3 newPosition = transform.position;
|
|
newPosition.y -= Time.deltaTime * moveSpeed;
|
|
transform.position = newPosition;
|
|
}
|
|
else
|
|
{
|
|
goingUp = true;
|
|
stoppedUntilTime = Time.time + waitTime;
|
|
}
|
|
}
|
|
}
|
|
|
|
transform.Rotate(new Vector3(0.0f, rotateSpeed * Time.deltaTime, 0.0f));
|
|
}
|
|
}
|