ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종프로젝트 11일차
    스파르타 게임 개발 2024. 7. 7. 23:55

    1. 스킬 기능 만들기

    함수 하나로 스킬들을 호출 하고 싶었다. 

    생각 했던 건 CSV로 스킬 데이터를 받아오고 받아온 데이터에 맞는 스킬을 호출 하게 하고 싶었다. 비어있는 함수에 저장 시키는 느낌으로 저장 하게 하고 싶었다.

     

    그런데 그런 방법보다 더 좋은 방법이 생각 났다. 

    스킬 이름과 같은 것을 호출 하면 되는 것이 아닌가였다. 어떻게 하나 싶었는데 생각보다 매우 간단했다. 

     

    swich를 스킬이름을 넣고 돌려서 맞는 거에 대한 함수를 호출 시키면 됐다.

     

    슬롯에 저장한 스킬이름에 맞는 함수가 호출을 하게 하는 것으로 버튼 클릭시 알맞는 스킬이 실행 되게 했다. 

    유닛스폰위치 바꾸는 스킬

     

    스킬시스템을 이렇게 만들었으니 이제 스킬들만 만들어서 추가 하면 될 것 같다. 

    이런 느낌으로 만들었다.

     

    나중에 string 말고 다른 형으로 넣을 수 있는지에 대해 알아보자. 

     

     

     

    2. 버그 수정

    평소에 고치고 있지 않던 자잘한 버그들이 있었다. 

    일단 클릭시 플레이어 캐릭터가 나오는데 이것들이 생성 기준으로 움직이는 방향이 정해져야 했고, 가끔 움직이지 않고 멈추던 버그가 있었다. 

     

    그리고 땅이 뚫리지 않은 곳은 유닛이 생성이 됐으면 안 됐다. 

     

    이 부분을 수정해줬다. 

     

    먼저 플레이어 유닛이 멈추는 문제는 플레이어가 공격중일 경우 움직임을 false 해서 제한 했는데, 오브젝트 풀로 인해서 이 bool값이 true가 되지 않고 다시 생성이 되어서 생기는 문제였다. 

     

    OnEnable을 사용해서 활성화 됐을 때 true로 바뀌게 해서 문제를 해결했다. 

     

    그리고 땅이 뚫리지 않는 곳에 유닛이 생성 안 되게 막는 것은 어떻게 할까 하다가, 처음에는 Block 클래스를 하나 더 만들어서 그게 부숴지면 해당 Ray영역 기능을 켜주게 하게끔 하는 것으로 하려 했지만, Ray만 안받을 뿐 유닛 생성은 다른 클래스에서 해버리니까 어차피 소환이 되었다. 

     

    그래서 Ray를 받는 클래스에 bool값을 줬다. Ray를 쏘고 해당 정보를 가져왔을 때 그 bool 값이 false면 유닛이 소환 되게 하지 않게 함으로써 문제를 해결 했다. 

    해당 블록들이 부숴지면 해당 영역이 true가 된다.

     

    계속 방치하던 문제들을 해결 하고나니 플레이가 좀 더 깔끔해졌다. 

     

    그런데 새로운 문제를 발견 했다.

     

    클릭을 해도 이상한 곳에 유닛이 생성이 되는데, 저 부분은 왜 그런 걸까. Ray를 맞추지 못 한 거 같은데 왜지.

     

     

Designed by Tistory.