

적을 생성해서 총알이 생성되긴 하는데, 제자리에 계속 존재했다.
총알 이동과 관련된 함수가 미구현이었다.
private void OnAim(Vector2 newAimDirection)
{
// 총알 발사 방향 설정
aimDirection = newAimDirection;
}
// ======== ProjectileController
private void Update()
{
if (!isReady)
{
return;
}
currentDuration += Time.deltaTime;
if (currentDuration >= attackData.duration)
{
DestoryProjectile();
}
_rigidbody.velocity = direction * attackData.speed;
}
public void InitializeAttack(Vector2 direction, AttackSO attackData)
{
this.direction = direction;
this.attackData = attackData;
UpdateProjectileSprite();
currentDuration = 0;
_spriteRenderer.color = attackData.projectileColor;
isReady = true;
}
private void UpdateProjectileSprite()
{
transform.localScale = Vector3.one * attackData.size;
}
private void DestoryProjectile()
{
gameObject.SetActive(false);
}

발사2가 먼저 작동
미사일이 바로 생성되어 초기화 방향인 오른쪽으로 발사 된다.
=> 튜터님께 상담
오xx 튜터님과 상담을 통해 Debug찍는 작업을 해보니
public void CallAttackEvent(AttackSO attackSO)
{
OnAttackEvent?.Invoke(attackSO);
}
public void CallLookEvent(Vector2 direction)
{
OnLookEvent?.Invoke(direction);
}
CallAttackEvent가 CallLookEvent보다 먼저 일어나는 로그를 확인했다.
이 부분을 고치려면 구조적으로 전체를 살펴봐야 하는데 당장 그렇게 할 여건은 아닌 것 같다 하셨고, 임시 방편으로 아직 방향이 정해지지 않았을 때 총알이 발사되지 않게 코드를 수정했다.
private Vector2 aimDirection = Vector2.zero;
// ==============
private void OnShoot(AttackSO attackSO)
{
if (attackSO == null || aimDirection == Vector2.zero)
{
return;
}
}