45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class FloatingZ : MonoBehaviour {
|
|
|
|
public AnimationCurve Curve;
|
|
public AnimationCurve SizeCurve;
|
|
public GameObject Player;
|
|
|
|
private float Clock = 0;
|
|
private float y = 0;
|
|
public float TimeToLive = 6f;
|
|
|
|
void Start() {
|
|
y = transform.position.y;
|
|
}
|
|
|
|
void Update() {
|
|
var position = transform.position;
|
|
Clock += Time.deltaTime;
|
|
TimeToLive -= Time.deltaTime;
|
|
if (TimeToLive <= 0) {
|
|
Destroy(gameObject);
|
|
}
|
|
if (Clock > 1) {
|
|
Clock = 0;
|
|
y += 0.5f;
|
|
}
|
|
position.y = y + Curve.Evaluate(Clock) * 0.5f;
|
|
position.x -= 0.4f * Time.deltaTime;
|
|
position.z += 0.4f * Time.deltaTime;
|
|
transform.position = position;
|
|
|
|
var rot = transform.rotation;
|
|
rot.SetLookRotation(Player.transform.position - position);
|
|
transform.rotation = rot;
|
|
|
|
var scale = transform.localScale;
|
|
var size = SizeCurve.Evaluate((6 - TimeToLive) / 6);
|
|
scale.Set(size, size, size);
|
|
transform.localScale = scale;
|
|
}
|
|
}
|