Unity_개발일지_56

홍신영·6일 전
0

Unity

목록 보기
58/62

itch.io에 배포를 시작한지 하루가 지났다.
하루지만 피드백도 조금 들어왔고, 인지하고 있던 버그들이 있었다.

오늘 아침 플레이어가 죽는 문제를 호다닥 해결하였다.
플레이어는 FSM으로 동작하는데 플레이어에서 인터페이스로 데미지를 받는 부분을 수정하여 체력이 0이하라면 GameOver ui가 나오고, 체력을 다시 최대체력으로 초기화 해주도록 하였다.

    public void TakeBasicAttackDamage(int damage)
    {
        Data.hp -= damage;
        if (Data.hp > 0)
        {
            stateMachine.ChangeState(stateMachine.HitState);
        }
        else
        {
            UIManager.Instance.Show<UIPopupGameOver>();
            Data.hp = maxHp;
        }
    }

여기서 GameOver ui가 생성되면, OnEnable 이벤트 함수로 타임 스케일을 0으로 만들어주고 마을로 돌아가는 버튼을 눌러 파괴될 때, 타임스케일을 다시 1로 만들어주도록 하였다.

    private void OnEnable()
    {
        Time.timeScale = 0.0f;
    }
    private void Start()
    {
        Cursor.lockState = CursorLockMode.None;
    }

    private void OnDisable()
    {
        Time.timeScale = 1.0f;
    }

    public void GoToLobby()
    {
        Hide();
        SoundManager.Instance.PlaySound("ChoiceSFX", 0.2f);
        SceneLoadManager.Instance.ChangeScene("InGameTownScene", () =>
        { }, UnityEngine.SceneManagement.LoadSceneMode.Single);
    }

근데 문제는 플레이어의 체력이 0이되어 GameOver ui가 생성되어 시간이 멈추고 버튼을 누르니 그 사이에 공격하고 있던 몬스터가 한 대를 더 때리게 되어 ui가 또 다시 생성되며 시간이 멈추는 것을 3회 정도 반복하게 되는 문제가 발생하였다.

다른 방법도 있겠지만 내가 생각한 방법은 플레이어가 더 이상 맞지 않도록, 플레이어의 collider를 비활성화 해주는 방법을 사용해보았다.

아까 플레이어 데미지 받는 부분에 플레이어의 콜라이더 컴포넌트를 비활성화 해주었다.

            var collider = GetComponent<CapsuleCollider>();
            collider.enabled = false;

이렇게 되니 공격을 더 맞지 않게 되어, 문제는 해결되었다.
하지만 콜라이더가 없으니, 바닥으로 사라지는 건 흠..ㅋㅋ

씬을 이동하면 어차피 파괴되니 그냥 플레이어를 파괴시키는 방법도 되긴할텐데 뭔가 오류가 발생할까 겁나는 마음에 소심하게 대처를 해보게 된 것 같다.

이 외에도 파티클이 안나오는 문제, 퍼즐 콜라이더의 범위가 작아 닿아도 잘 파괴되지 않는 문제 등이 있었다.

파티클은 파티클이 있는 오브젝트의 위치가 다른 곳에 가있었고, 콜라이더는 범위를 조금 넓게 해서 해결하였다. 범위는 크게 문제 되지않아 보인다.

사실 정보를 못받아와 null이 뜨는 등 연결 문제도 몇 가지 있었는데 다행히 같은 오브젝트 내에서의 연결이여서 inspector로는 연결이 불가능하고 해서 getcomp로 간단히 해결되었다.

이렇게 오늘 발견한 버그들을 수정하는 작업을 진행하였다.

버그를 수정하고 다음으로 작업한 것은 지금까지 작업한 프로젝트 브로셔를 만드는것 후 지금까지의 작업을 정리한다니 기억이 날지..잘 생각해보자.

그리고 작업한 내용은 디자인적인 부분으로 게임 시작하며 등장하는 컷씬을 제작하는 부분이였다. 다른 방법도 많이 있겠지만 지금 방식은 시나리오에 맞는 이미지를 게임내에서 이리저리 잘 배치하여 캡쳐 후 영상 편집으로 사운드와 자막을 넣어 세계관을 설명해주는 영상을 만들고 이를 게임 시작 부분에 넣어 awake을 통해 영상이 재생되도록 할 것 같다. 영상 플레이는 조금 더 찾아봐야 할 것 같다. 오늘은 이만. 끝

profile
게임 클라이언트 개발자

0개의 댓글