campfire/Assets/Scripts/FloatingZ.cs

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;
}
}