프로그래밍/유니티 및 C#

[유니티/C#] Content 크기에 맞춰 늘어나는 Scroll View 만들기(유동적인 Scroll View)

바토파 2024. 1. 22. 19:04
반응형

완료한 퀘스트를 표시해주는 패널

왼쪽에 보이는 것과 같은 스크롤 뷰를 만들어보자.

 

퀘스트 페이지 하이어라키
퀘스트 페이지 인스펙터

퀘스트 페이지는 이런 식으로 구성되어 있다.

Page2는 오른쪽에 표시되는 내용들이 담겨 있다.

 

foreach (var p in GameManager.instance.ongoingQuests)
{
    foreach (var oq in p.Value)
    {
        GameObject tempSlot = Instantiate(questSlotPrefab, ongoingQuestContents.transform);
        tempSlot.GetComponent<QuestSlot>().UpdateSlot(GameManager.instance.quests[oq.NPCName][oq.QID]);
    }
}

인벤토리 만드는 것과 비슷하다.

public GameObject 선언해서 프리팹 담아주고 (questSlotPrefab)

객체 만들면서 부모는 스크롤 뷰에 있는 content로 지정 (ongoingQuestContents.transform)

나는 현재 진행 중인 퀘스트 목록을 보여주고 싶어

게임매니저 안에 있는 진행 중 퀘스트 목록을 가져와 반복문으로 뽑았다.

UpdateSlot 함수를 통해 슬롯 안에 퀘스트 내용을 담아주고 슬롯에 표시되는 제목을 바꿔주었다.

content 인스펙터

스크롤 뷰 안의 content는 이런 식으로 구성하면 된다.

인벤토리 창에서 셀 크기와 Constraint를 조절한 것과 같다.

반응형