SanAndreasUnity/Assets/Scripts/Behaviours/OutOfRangeDestroyer.cs

46 lines
1.1 KiB
C#
Raw Normal View History

2020-05-31 17:07:22 +00:00
using UnityEngine;
public class OutOfRangeDestroyer : MonoBehaviour
{
public float timeUntilDestroyed = 5;
public float range = 250;
public Transform targetObject = null;
private float timeSinceOutOfRange = 0;
// Use this for initialization
private void Start()
{
if (null == targetObject)
{
if (Camera.current != null)
targetObject = Camera.current.transform;
}
}
// Update is called once per frame
private void Update()
{
timeSinceOutOfRange += Time.deltaTime;
if (null == targetObject)
{
if (Camera.current != null)
targetObject = Camera.current.transform;
}
if (null != targetObject)
{
float distanceSq = (transform.position - targetObject.position).sqrMagnitude;
if (distanceSq <= range * range)
{
timeSinceOutOfRange = 0;
}
}
if (timeSinceOutOfRange >= timeUntilDestroyed)
{
Destroy(gameObject);
}
}
}