TIL(Today I Learned)

[Unity] 리듬게임 채보 툴 제작(1) - TIL#46

Najdorf 2024. 3. 5. 12:11
728x90

트러블 슈팅

 

UI 드래그 드롭 시 마우스 좌표를 사용하면 원하는 위치에서 벗어나는 문제

 

해결 : 마우스 좌표를 사용하지 않고 IPointerDownHandler.OnPointerDown 의 eventData를 이용

// Grid 클릭 시
void IPointerDownHandler.OnPointerDown(PointerEventData eventData)
{
    defaultPos = _grid.position;
    startingPos = eventData.position;
}

// 드래그 중일 때
void IDragHandler.OnDrag(PointerEventData eventData)
{
    moveOffset = eventData.position - startingPos;
    _grid.position = new Vector2(0f, defaultPos.y + moveOffset.y);
}

처음 참조한 글 : https://krapoi.tistory.com/entry/Unity-게임-개발-드래그-앤-드롭

해결한 글 : https://rito15.github.io/posts/unity-memo-ui-drag-and-drop/

 

유니티 - UI 헤더 드래그 앤 드롭으로 옮기기

기능 UI의 헤더(윗부분)를 따로 구성했을 때, 헤더를 드래그 했을 때만 옮기기

rito15.github.io

 


 

채보 찍는 방식
1. grid prefab을 채보 길이만큼 엄청 많이 만들기
2. 마우스 위치값을 입력받아서 해당 위치에 노트가 찍히게 하기
3. 전체를 불려와서 마우스로 선택한 bar에만 grid prefab 불러오기

비트 그리드가 처음에 로드될 때
1. 각 비트별 그리드 생성
2. SetActive False
3. Default로 4비트를 "Grid"에서 자식으로 가져와서 활성화
4. 선택한 그리드를 3번과 같이 불러오고 나머지는 GridBtns 하위에 돌려놓는 방식

그리드 버튼을 클릭했을 때 어떻게 노트가 생성되게 하나?

728x90