odyssey

#20 odyssey 개발일지 : 플립 및 부스트 추가

san10 2024. 1. 19. 16:33

보통 2d 레이싱 게임에서는 플립했을 때 보너스가 있다!

odyssey에서도 그런 요소를 추가하고자 한다.

 

부스트 추가

원래는 부스트를 하나의 상태로 취급했었는데

생각해보니 부스트는 어떤 상태든지 적용될 수 있게 만들고 싶어서 상태에서 뺐다.

private void ActivateBoost()
{
    if (isBoost&&isGrounded)
    {
        if (!boostParticle.isPlaying) {
            boostParticle.Play();
        }

        if (rigid.velocity.x >= 0)
        {
            rigid.velocity += rigid.velocity.normalized * boostForce * Time.deltaTime;
        }

        boostTimer -= Time.deltaTime;
        if (boostTimer <= 0)
        {
            boostParticle.Stop();
            isBoost = false;
        }
    }
}

위 코드를 lateUpdate에서 돌려주고,

트리거가 발동되면 계산된 velocity에 일정 시간동안 일정값을 더해준다.

 

나이스 플립~

부스트가 발동되는 조건엔 여러가지가 있는데, 그중 하나가 플립을 도는 것이다.

그래서 플립이 완료되면 플립 완료 이펙트를 출력하고, 

부스트 도중에도 이펙트를 출력한다.

 

어쨌든 velocity를 조정해서 더 빠르게 만들었는데

지금 생각해보니 부스트도 AddForce로 구현하는게 더 나을것 같다는 생각이 들었다.

캐릭터 컨트롤러는 나중에 더 손봐야 할 것같다..