ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL_47(개인과제 진행)
    TIL 2023. 10. 11. 20:57

    23.10.11. 47차

     

    오늘은 개인과제를 진행하였다.

     

    개인과제는 3D로 캐릭터가 점프를 통해 필드를 다니고 정상에 있는 깃발에 터치다운하면 클리어하는 유형의 게임이다.

     

    현재는 캐릭터가 죽었을때의 리스폰 빼고는 전부 구현하였는데 아직 해결하지 못한 리스폰을 제외하고도 여러 오류들이 있었다.

     

    처음에 생긴 오류는 캐릭터의 죽음판정하는 과정에서 나왔다.

     

    게임 구조상 필드에서 떨어지면 죽는것이기 때문에 필드 밑쪽에 보이지 않는 투명한 공간을 두고 tag를 달아서 player에 OnDie함수에서 태그에 닿으면 트리거가 발동하여 죽는 메커니즘이다.

     

    하지만 처음에는 캐릭터가 떨어져도 죽지 않고 살아있어서 자세히 살펴보니

     

    switch문에서 case 에서 OnDie를 불러 놓고 break를 달지 않아서 생긴 문제였다. 평소 switch문을 잘 쓰지 않다보니 빼먹은것 같았다.

     

    두번째로는 죽었을때 나타나는 gameOverPanel을 만들어놓고 player script에서 gameManager에 있는 Open/Close Panel 함수들을 불러오는 과정이었는데, player script에서 아무리 GameManager.OpenPanel의 형식으로 불러줘도 nullreference오류가 발생하는 것이었다.

     

    검색을 통해 찾아보니 player스크립트에서 선언된 gameManager가 초기화 되지 않아 생긴 문제 였고, 그래서 null값으로 나오는 것이었다. 해결방법으로는 gameManager를 싱글톤화를 하고, 싱글톤 선언에서 if문을 추가해 null값일때 다시 선언해주고, null값이 아니면 제거해주는 방법으로 해준 뒤, player script에서 gameManager를 SerializeField로 선언해 Inspecter 창에서 gameManager를 직접 연결해줌으로써 해결했다.

     

    내일은 리스폰 관련해서 오류를 해결해보고 정 안되겠으면 튜터님을 찾아가서 해결해야겠다.

    'TIL' 카테고리의 다른 글

    TIL_49(팀 프로젝트 회의)  (1) 2023.10.13
    TIL_48(개인과제 완료 및 강의)  (0) 2023.10.12
    TIL_46(강의 마무리 및 개인과제 구상)  (1) 2023.10.10
    TIL_45(강의듣기)  (0) 2023.10.06
    TIL_44(메모리)  (0) 2023.10.05
Designed by Tistory.