2026-05-21 보스 특수스킬1
This commit is contained in:
32
Assets/02_Scripts/Combat/HazardHitbox.cs
Normal file
32
Assets/02_Scripts/Combat/HazardHitbox.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(Collider2D))]
|
||||
public class HazardHitbox : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private LayerMask _targetLayer;
|
||||
[SerializeField] private LayerMask _blockLayer; // 피해를 줄 레이어 (보통 Player)
|
||||
private int _damage = 0;
|
||||
private Collider2D _collider;
|
||||
private void Awake()
|
||||
{
|
||||
_collider = GetComponent<Collider2D>();
|
||||
_collider.isTrigger = true;
|
||||
_collider.enabled = false;
|
||||
}
|
||||
|
||||
private void OnTriggerStay2D(Collider2D other)
|
||||
{
|
||||
TryDamage(other);
|
||||
}
|
||||
|
||||
private void TryDamage(Collider2D other)
|
||||
{
|
||||
if ((_targetLayer.value & (1 << other.gameObject.layer)) == 0) return;
|
||||
if (!other.TryGetComponent<IDamageable>(out var target))
|
||||
target = other.GetComponentInParent<IDamageable>();
|
||||
if (target == null) return;
|
||||
|
||||
target.TakeDamage(_damage);
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/Combat/HazardHitbox.cs.meta
Normal file
2
Assets/02_Scripts/Combat/HazardHitbox.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 906fae86c8ab8ea4faa1855e18a573d0
|
||||
Reference in New Issue
Block a user