ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종캠프 15일차
    스파르타 게임 개발 2024. 7. 11. 23:35

    1. UI 마무리

    어제 작업 하다가 오류가 난 것이 있었다. 

     

    이렇게 x 표시 나오면서 깨지는 오류였는데, 이것의 원인은 그러했다. 

     

    나는 UI를 만들 때 전부 다 4방향으로 박는 앵커를 사용 했다. 

     

    그래서 생성이 될 때 약간 커지면서 찢어지면서 오류가 낫던 것이었다. 

    그래서 이 UI의 기준을 맞춰줄 Image를 만들어줘서 거기에 대한 간격을 맞추게 해서 해결 할 수 있었다. 

     

    이렇게 흩어지는 UI들의 기준을 잡아줄 Image 하나를 만들어줘서 그 Image에 간격을 맞추게 했더니 잘 됐다. 

    그런데 이 Image에 앵커를 박으니까 또 똑같은 문제가 발생 했다. 이러면 앵커를 박으면 안 되는 것인가 했더니 앵커를 박아야 한다고 한다. 

     

     

     

    이제 다시 UI를 마무리 해보자. 일단 UI 구성을 정하고 어떻게 넣을지 그려보자.

     

    UI를 어떻게 만들 것인지 대충 그리고 UI를 만들었다. 

     

    이번에 UI 작업을 하면서 2번 정도 갈아엎어가지고 UI 작업에 대한 숙련도가 많이 오른 것 같다. 

     

    일단 나는 Canvas size와 해상도가 같아야 하는 걸로 착각을 하고 있었는데 아니다. Canvas Scale size가 맞춰 주는 것이다. 난 그래서 한 번 더 갈아엎었다. 

     

    앵커와 stretch 등을 잘 써줘야 한다. 난 작업을 하면서 부모 빈객체를 만들고 자식객체로 들어갈 크기를 정해주고 자식 객체로 배경을 잡아주고 자식객체들은 거기서 또 앵커잡고 그 다음에 부모 obj가 앵커 잡게 하는 방식으로 했다. 

     

    UI를 만들 때 이렇게 만들어줘야 된다는 것을 늦게 알았다. 역시 몇 번 엎다 보니 자연스레 몸이 익었다. 

     

    완성한 UI. 

     

    오늘 UI 특강이 있었다. 그리고 튜터님께서도 말씀을 해주신 게 있는데, 일단 일렬로 세우는 게 있으면 무조건 ray out group을 쓰라고 하셨다. 잘 쓰도록 습관을 들이자. 

     

    그리고 나는 stretch로 잡아주면 해상도가 늘어났을 때 비율이 이상해져서 앵커로 잡았는데, canvas size를 해상도마다 키울 필요가 없다는 것을 깨닫고 strectch로 작업을 해야겠다 나중에는, 자기 편한 거 나름인가?

     

    일단 그리고 배경은 있는 거 집어넣었다. 나중에 AI로 그림 만들라고 하시는데 아직 해본 적이 없어서 일단 있는 거 대충 넣었다. 

     

    일단 UI들 만들었으니 UI마다 기능들을 넣어주자.

     

     

     

    2. Toggle 기능 만들기

    버튼 기능부터 만들었다. 상점 버튼을 눌렀을 때 누른 페이지가 나오고 다른 페이지는 꺼지게 하고 또 같은 걸 누르면 페이지가 닫히게 하게끔 만들었다. 

     

    그런데 튜터님께서 Toggle 컴포넌트라는 게 있다고 알려주셨다. 

    이게 있는데 왜 그렇게 만드냐고, 아니 이걸 왜 지금 알려줘는 지금 물어봤기에,

     

    성능이 차이가 없다면 그냥 쓰려고 했지만, 이 Toggle기능이 성능이 더 좋다고 한다. 

     

    키는 게 아니라면 아예 SetActive조차 하지 않는다. 그리지도 않는 다는 소리다. 

    그래서 어쩔 수 없이 코드를 버리고 Toggle기능으로 변경 하였다. 

     

    Toggle을 사용 하였을 때 저 X버튼을 누르면 다 꺼지는데 버튼을 두 번 클릭 해야 페이지가 활성화 됐다. 

    이 부분은 버튼에 저 Toggle들을 연결 해줘서 IsOn이 bool 이 되게끔 설정을 해줘서 해결을 했다. 

     

    이게 내가 버튼에서 페이지를 끄는 걸 부모오브젝트만 꺼지게 했는데 이게 Toggle에 등록 한 것들은 꺼지지가 않아서 생기는 문제였다. 

     

    한 번 꺼진 다음에 다시 켜지는 게 되어버려서 2번 클릭을 해야 됐었다. 

    그래서 IsOn 설정을 해줘서 원하는 대로 작동 되게 했다. 

     

     

     

    오늘 여기까지 해서 작업이 마무리 되었는데 사실 오늘 목표는 UI마무리 하고 저장, 사운드, 시작화면 등등 많이 하려고 했는데 생각보다 UI가 오래 걸렸다. 쉽다고 생각 했던 앵커나 여러 작업들이 생각보다 복잡했고, 복잡 한 이유는 내가 복잡하게 생각 해서였던 것 같다. 막 게임 시작 했을 때 핸드폰의 해상도를 가져 오는 거 알아보고 있었다. 

     

    canvas 사이즈를 늘리면 스트레치로 사이즈를 잡은 애들이 비율 이상해지는데, 해상도마다 캔바스 사이즈를 잡아줘야 하는 걸로 잘 못 알고 있어서 시간을 좀 낭비 했다. 캔바스를 계속 늘렸다 줄였다 했다. 

     

    아무튼 맵도 다시 만들고 UI도 새로 만드니까 훨씬 깔끔하긴 하다. 이제 계속 추가만 하면 될 것 같다.

     

     

    내일 목표: 스킬구조 개선, 시작화면 만들기, 사운드 추가하기, 여러 기능들 추가하기.

Designed by Tistory.