// Crest Ocean System
// Copyright 2020 Wave Harmonic Ltd
using UnityEngine;
namespace Crest.Examples
{
///
/// Simple utility script to destroy the gameobject after a set time.
///
public class TimedDestroy : MonoBehaviour
{
///
/// The version of this asset. Can be used to migrate across versions. This value should
/// only be changed when the editor upgrades the version.
///
[SerializeField, HideInInspector]
#pragma warning disable 414
int _version = 0;
#pragma warning restore 414
public float m_lifeTime = 2.0f;
// this seems to make motion stutter?
//public float m_scaleToOneDuration = 0.1f;
public float m_scaleToZeroDuration = 0.0f;
Vector3 m_scale;
float m_birthTime;
void Start()
{
m_birthTime = Time.time;
m_scale = transform.localScale;
}
void Update()
{
float age = Time.time - m_birthTime;
if (age >= m_lifeTime)
{
Helpers.Destroy(gameObject);
}
else if (age > m_lifeTime - m_scaleToZeroDuration)
{
transform.localScale = m_scale * (1.0f - (age - (m_lifeTime - m_scaleToZeroDuration)) / m_scaleToZeroDuration);
}
/*else if ( age < m_scaleToOneDuration && m_scaleToOneDuration > 0.0f )
{
transform.localScale = m_scale * age / m_scaleToOneDuration;
}*/
else
{
transform.localScale = m_scale;
}
}
}
}