버그 해결을 위한 모든 질문을 던져
0 votes
728 views

첨부한 gif 파일을 보시면 흔히 볼 수 있는 카드게임의 UI 처럼 리스트 형태로 배치해 두고 마우스 오버시 확대 되고 카드가 추가 되거나 삭제 했을 때 자동으로 위치 정렬이 일어나는 UI 를 만들고 싶습니다.

근데 유니티에서 제공하는 UGUI 의 컨트롤 들로는 한계가 있더군요.

 

일단 scroll view 랑 가장 비슷해 보여서 각 카드들을 image 컨트롤로 만들어 Content 에 추가하고 각 카드 image 별로 회전과 위치 옵셋을 조금씩 먹여서 기본적인 배치는 비슷하게 만들었습니다. (이것도 뭔가 더 좋은 방법이 있을지..)

amimation 키프레임을 추가하면 통해 마우스 오버시 자동 확대도 큰 문제는 없겠지요. (아마도)

근데 카드 넣고 뺄때 자동으로 위치가 촤라락 정렬 되는건 어찌해야 할지 모르겠습니다.

예를 들어 카드가 1장이면 첫번째 카드가 항상 가운데 정 회전각도로 보일꺼고 여기에 한장 더 추가하면 첫번째 카드가 조금 왼쪽으로 밀리면서 회전도 먹고 두번째 카드도 대칭위치에 배치되어야 겠지요.

이렇게 카드가 추가 될수록 또는 뺄때마다 위치와 회전값이 변경되어야 할 거 같은데...

이런 경우 어떤 방식으로 만들어야 할까요?

조언 부탁 드립니다!

asked (9 point) , 728 views

3 answers

+1 vote

하스스톤의 경우는 인게임의 UI가 UGUI류의 2d가 아니고, 3d 모델링 파일로 구성되어 있습니다.
덱의 경우도 3d로 모델링된 카드가 적당한 3d 공간상에 떠있는 형태라서
draw되서 덱으로 날아올때, 확대될때, 덱에서 필드로 카드가 나갈때등의 연출이 자연스럽게 됩니다. 

그리고 덱 카드의 정렬은 적당히 연산을 해주시면 되는데,
object c로 되어 있습니다만 아래 링크의 로직을 보시면 감을 잡으실 수 있을껍니다.
https://github.com/nicklockwood/iCarousel/blob/master/iCarousel/iCarousel.m
(transformForItemViewWithOffset를 참고하세요)

answered (12 point)
수정됨
+2 votes

커버플로우를 구현하려고 하시는 것 같네요.

예전에는 NGUI로 많이 구현하고 그랬는데

소스를 보시면 같은 방식으로 UGUI로도 구현 가능하실 겁니다.

https://unitylist.com/p/1xt/Unity-Cover-Flow

참고해보세요!

answered (19 point)
0 votes
걍 전부 모델러한테 3디로 만들어달라하고 텍스쳐만 바꿔끼시면 됩니다.
answered (116 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

147 질문
247 answers
274 댓글
261 users