Unity UI ScrollView snap to item (유니티 스크롤뷰 아이템 스냅)

 

StackOverFlow
https://stackoverflow.com/questions/30766020/how-to-scroll-to-a-specific-element-in-scrollrect-with-unity-ui

 

유니티로 개발하다보면 ScrollView로 인벤토리나 퀘스트 등의 리스트를 만들 일이 많이 생긴다.

그런데 특정 아이템의 위치로 스냅을 시키는 것은 꽤나 구현하기 껄끄럽다.

 

private List<RectTransform> items;
private RectTransform contentTrans;

private void FocusOneItem(int slotNum)
{
    RectTransform target = items[slotNum];

    Vector2 point = (Vector2)scrollView.transform.InverseTransformPoint(contentTrans.position)
        - (Vector2)scrollView.transform.InverseTransformPoint(target.position)
        - new Vector2(0f, target.sizeDelta.y / 2f);

    point.x = 0f;
    contentTrans.anchoredPosition = point;
}

 

위와 같은 형태로,

앵커의 위치에 맞게 코드는 조심씩 수정해줘야한다.

 

 

댓글

Designed by JB FACTORY