ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종프로젝트 10일차
    스파르타 게임 개발 2024. 7. 6. 22:42

    1. 강화기능 만들기

    어제 작업하다가 멈췄던 자잘한 오류들을 수정하고 강화기능을 만들었다. 

     

    그런데 잘 작동을 해야 하는데 오류가 있었다. 

     

     

    강화비용이 자꾸 -가 되는 문제였다. 공격력과 체력도 계속 갑자기 -가 되었다. 

     

    대체 왜 그런걸까 몰랐지만, 유닛이 재생성 될 때마다 값이 변하는 것을 확인 했고, 재생성 되는 곳을 확인 해도 이유를 몰랐지만, 유닛 스텟을 초기화 하는 부분에 이런 건 없어도 되잖아. 하고 지우다가 문제 이유를 발견 했다. 

     

    공격력과 체력 등등등의 초기값을 저장 시켜야 하는 게 있었는데, 한 번만 실행 하고 안 써야 하는데 급한 맘에 유닛 생성 하는 곳에다가 넣어버리는 바람에 계속 재생성 될 때마다 값이 변하는 것이였다. 

     

    그래도 이 문제를 확인 하면서 형변환 하는 것에 대해선 오류가 있을 수 있다라는 것을 알게 되었다.

    형변환을 계속 하면 데이터가 손실이 날 수도 있고, - 음수가 될 수도 있다고 한다. 그래서 형변환을 계속 하는 것은 좋지 않다고 한다. 

     

    강화 비용이 오를 때 형변환 해서 더하게 했는데 다른 방법을 찾아야 겠다. 일단 완벽함은 나중에, 다양한 구현이 우선이다. 

     

     

     

    2. 드래그 기능 수정

    잡다한 것을 수정하고 추가 했는데 화면 드래그 기능이 자꾸 말썽이었다. 

     

    UI 위에서 터치가 되었으면 드래그가 안 되게 했는데 자꾸 움직여지는 것이다. 

     

    건드린 게 없는데 갑자기 이렇게 되어서 시간이 굉장히 오래 걸리고 스트레스를 많이 받은 것 같다. 

     

    결론적으로 if (EventSystem.current.IsPointerOverGameObject()) return; 라는 유니티가 만들어둔 기능을 사용해서 해결 했다. 

     

    ray를 쐈을 때 UI면 리턴 시켜주는 코드다. 

    진작에 이거 쓸 걸 그랬다.. 후 괜히 원래의 방법으로 고쳐보고자 했는데 안 되어서 찾다보니 이런 좋은 게 있었다. 

    원래는 UI에 컬라이더를 적용 시켜서 Ray를 막게 했었다. 그런데 갑자기 막아지지가 않았음.

     

    아무튼 이 코드를 Ray를 쏘는 코드에 추가 시켜서 UI면 return 시키게 해서 드래그를 마무리 지을 수 있었다. 

     

    이제 플레이어 스킬을 만들어 보자

    이거 하는데 시간을 너무 보낸 것 같다.

Designed by Tistory.