2026-05-20 총쏘기 이펙트
This commit is contained in:
@@ -811,6 +811,36 @@ private void ActivateAttackHitbox(ActionData data)
|
||||
|
||||
Vector2 sourcePosition = _rb != null ? _rb.position : (Vector2)transform.position;
|
||||
_attackHitbox.Activate(data, localPosition, hitVelocity, sourcePosition, hitTargetPosition, data.CorrectHitTargetY, _groundLayer.value, _enemyLayer);
|
||||
|
||||
SpawnHitEffect(data);
|
||||
}
|
||||
|
||||
// hit 발동 시점에 이펙트 프리팹 생성.
|
||||
// 위치는 HitEffectOffset으로 별도 지정 (hit 영역 Offset과 독립).
|
||||
// 페이싱에 맞춰 좌우 반전하고, 설정된 수명만큼만 유지.
|
||||
private void SpawnHitEffect(ActionData data)
|
||||
{
|
||||
if (data.HitEffectPrefab == null) return;
|
||||
|
||||
Vector2 localPosition = GetAttackLocalPosition(data.HitEffectOffset);
|
||||
Vector3 worldPosition = transform.TransformPoint(localPosition);
|
||||
GameObject effect = Instantiate(data.HitEffectPrefab, worldPosition, Quaternion.identity);
|
||||
|
||||
// 캐릭터가 왼쪽을 보면 이펙트도 X 반전.
|
||||
if (_spriteRenderer != null && _spriteRenderer.flipX)
|
||||
{
|
||||
Vector3 scale = effect.transform.localScale;
|
||||
scale.x *= -1f;
|
||||
effect.transform.localScale = scale;
|
||||
}
|
||||
|
||||
// 플레이어 자식으로 붙이면 캐릭터 따라 움직임 (검광처럼 캐릭터에 붙는 이펙트).
|
||||
if (data.HitEffectAttachToPlayer)
|
||||
effect.transform.SetParent(transform);
|
||||
|
||||
// 0보다 크면 자동 파괴. 0이면 프리팹이 스스로 정리한다고 가정 (파티클 Stop Action 등).
|
||||
if (data.HitEffectLifetime > 0f)
|
||||
Destroy(effect, data.HitEffectLifetime);
|
||||
}
|
||||
|
||||
private void EnsureAttackHitbox()
|
||||
|
||||
Reference in New Issue
Block a user