public class spaceBehaviour : MonoBehaviour
public float spaceBeginHeight = 4000f;
public float spaceTransition = 500f;
public float spaceHeight= 500f;
public bool enteringSpace = false;
public bool inSpace = false;
public GameObject Rocket;
private GameObject player;
public Material spaceMat;
if (Rocket.transform.position.y >= spaceBeginHeight)
ChangeOpacityFromRange(spaceMat.color, spaceBeginHeight, Rocket.transform.position.y, spaceTransition);
if (Rocket.transform.position.y >= spaceBeginHeight + spaceTransition)
public void ChangeOpacityFromRange(Color color, float begin, float pos, float transitionHeight)
color = new Color(color.r, color.g, color.b, Mathf.Clamp((spaceBeginHeight - Rocket.transform.position.y)/spaceTransition, 0, 1f)*255f);
Equation = OriginalEquation;
public myAnimation(Func<float, float> func)
CurrentVector = StartVector;
public void Start(int time)
public void Start(int time, Vector3 startVector, Vector3 targetVector)
StartVector = startVector;
TargetVector = targetVector;
PerformAnimation = false;
public Func<float, float> Equation;
public int TotalTime = 400;
public float CurrentTime = 0;
public float LinearRatio;
public Vector3 StartVector;
public Vector3 TargetVector;
public Vector3 CurrentVector;
public bool PropertiesSet = false;
public bool PerformAnimation;
LinearRatio = (CurrentTime / TotalTime);
Ratio = GetValueOfEquation(LinearRatio);
CurrentVector = Vector3.Lerp(StartVector, TargetVector, Ratio);
if (CurrentTime >= TotalTime)
PerformAnimation = false;
CurrentVector = TargetVector;
CurrentTime += Time.deltaTime * 1000f;
public float GetValueOfEquation(float value)
public float OriginalEquation(float value)