진행한 것들

페이즈 1 - 수류탄 투척 / 샷건 수정

- 샷건 궤적 수정 : 샷건의 각도가 이상하게 퍼지는 것 수정

원인 : 월드를 기준으로 회전만 적용했음

해결 : 플레이어로 향하는 방향 벡터를 고려한 상태에서 각도를 변경함으로써 해결

for (int i = 0; i < _bulletAmount; i++)
{
    Vector3 direction = _target.position - _spawnPoint.position;
    Vector3 afterDirection = direction.normalized;

    float modAngle = 0;

    Bullet bullet = ObjectPoolingManager.Instance.GetGameObject(ObjectPoolType.BossShotgunBullet).GetComponent<Bullet>();
    bullet.transform.position = _spawnPoint.position;

    int halfIndex = i / 2;
    if (_bulletAmount % 2 != 0 && i == 0)
        modAngle = 0;
    else
        modAngle = i % 2 == 0 ? -_bulletPerAngle * halfIndex : _bulletPerAngle * (halfIndex + 1);

    if (modAngle != 0)
        afterDirection = Quaternion.Euler(new Vector3(0f, 0f, modAngle)) * direction.normalized;

    bullet.Look(afterDirection);
    bullet.Move();
}

 

- 수류탄 궤적 수정 : 수류탄이 땅으로 꺼지는 것 수정

원인 : Distance(플레이어, 수류탄 처음 위치)로 계산하여 Random.insideUnitSphere를 사용하는데 이게 - 값이 나올 수 있음

해결 : y 값이 플레이어 y 위치보다 작다면 높이를 원의 반지름 만큼으로 함

public void InitPos()
{
    if (_target != null)
    {
        _initPos = transform.position;
        _lastPos = _target.position;
        float radius = Vector3.Distance(_initPos, _target.position) * GlobalValues.HALF;
        Vector3 sphereRandomPos = Random.insideUnitSphere * radius;
        Vector3 canonicalPos = (_initPos + _target.position) * GlobalValues.HALF;
        _randomPos = canonicalPos + sphereRandomPos;
        _randomPos.y = _randomPos.y < _target.position.y ? radius : _randomPos.y;
        _randomPos.z = 0f;
    }
}

 

- 무적 적용 : 구르기 시 무적 적용

 

 

오늘의 이슈 / 내일 할 것

오늘 이슈

- 페이즈 넘어갈 때 죽이면 다음 동작 발동하는 버그

- 페이즈 2 로켓 이펙트 필요

 

 

내일 할 것

- 페이즈 넘어갈 때 죽이면 다음 동작 발동하는 버그 수정

- 페이즈 2 로켓 이펙트 구현

- 보스 근접 공격 구현

 

 

오늘의 회고

 오늘은 어제 있던 샷건 궤적이 플레이어로 안 가고 정면으로만 가는 버그를 수정했고 수류탄이 땅에 꺼지는 버그를 수정했다. 또한 구르기 시 무적을 적용해서 적의 공격을 무시할 수 있게 했다. 오늘 멘토링 시간에 보스와 관련된 부분을 조언받게 되었는데 근접 공격이 필요하다고 해서 내일 구현할 생각이다. 내일도 열심히 해보자. 파이팅!

+ Recent posts