2021-02-04 13:31:55 -08:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
[RequireComponent(typeof(Rigidbody2D))]
|
|
|
|
public class Projectile : MonoBehaviour
|
|
|
|
{
|
|
|
|
private Transform _transform;
|
|
|
|
private Rigidbody2D _rigidbody;
|
2025-02-26 11:53:44 -08:00
|
|
|
private float _startTime;
|
2021-02-04 13:31:55 -08:00
|
|
|
|
|
|
|
public float speed = 7;
|
2025-02-26 11:53:44 -08:00
|
|
|
public float lifeTime = 5;
|
|
|
|
public float damage = 2;
|
2021-02-04 13:31:55 -08:00
|
|
|
|
|
|
|
private void Start()
|
|
|
|
{
|
|
|
|
_transform = transform;
|
|
|
|
_rigidbody = GetComponent<Rigidbody2D>();
|
|
|
|
_rigidbody.gravityScale = 0;
|
2025-02-26 11:53:44 -08:00
|
|
|
_startTime = Time.time;
|
2021-02-04 13:31:55 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
private void Update()
|
|
|
|
{
|
|
|
|
_transform.position += _transform.up * (speed * Time.deltaTime);
|
2025-02-26 11:53:44 -08:00
|
|
|
|
|
|
|
if (_startTime + lifeTime < Time.time)
|
|
|
|
{
|
|
|
|
Destroy(gameObject);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: ignore owner
|
|
|
|
private void OnCollisionEnter2D(Collision2D collision)
|
|
|
|
{
|
|
|
|
var health = collision.gameObject.GetComponent<Health>();
|
|
|
|
if (health != null)
|
|
|
|
{
|
|
|
|
health.DealDamage(damage);
|
|
|
|
}
|
2021-02-04 13:31:55 -08:00
|
|
|
}
|
|
|
|
}
|