Files
PGiZ2/Assets/Code/Gameplay/Enemies/FeatherProjectile.cs
T
2026-02-07 13:34:37 +03:00

41 lines
1.1 KiB
C#

using Code.Gameplay.Player;
using UnityEngine;
namespace Code.Gameplay.Enemies
{
public class FeatherProjectile : MonoBehaviour
{
[SerializeField] private float _speed = 6f;
[SerializeField] private float _lifetime = 3f;
[SerializeField] private LayerMask _playerLayer;
private Vector2 _direction;
private float _timer;
public void Launch(float angle)
{
var rad = angle * Mathf.Deg2Rad;
_direction = new Vector2(Mathf.Cos(rad), Mathf.Sin(rad));
transform.rotation = Quaternion.Euler(0, 0, angle);
}
private void Update()
{
transform.Translate(_direction * (_speed * Time.deltaTime), Space.World);
var hit = Physics2D.OverlapCircle(transform.position, 0.4f, _playerLayer);
if (hit && hit.CompareTag("Player"))
{
hit.GetComponent<PlayerHealth>()?.TakeDamage();
Destroy(gameObject);
}
_timer += Time.deltaTime;
if (_timer > _lifetime)
{
Destroy(gameObject);
}
}
}
}