퀘스트 시스템 UI변경 및 적용 (2)

이재형·2025년 8월 5일

MinerFergus 개발 정리

목록 보기
9/10

퀘스트 수주 UI를 변경

퀘스트 수주 UI를 변경하는 이유

퀘스트의 설명으로만 유저가 판단하여 수주를 해야하는 불편함이 존재했습니다.
플레이어가 자세하게 퀘스트의 정보를 확인하고 수주할 수 있도록 변경해봤습니다.

변경 전 이미지

변경 후 이미지(1)

퀘스트의 이름 UI를 클릭하여 퀘스트의 자세한 정보를 확인하고 수주를 하거나 취소하거나 선택지를 제공


변경 후 이미지(2)

클릭한 퀘스트의 정보는 위와 같이 나오며 Accept버튼으로 퀘스트를 수주 Cancel버튼으로 퀘스트를 수주하지 않고 되돌아가게 설정

사용한 Component

Button: 퀘스트의 정보 및 수주를 하기 위해 사용


코드를 작성하여 퀘스트 정보 전달 및 반영

퀘스트 이름 UI를 클릭 시 자세한 퀘스트의 내용을 확인

// 자세한 퀘스트를 확인하기 위한 버튼 등록 메서드
public void SerchQuest(int num)
{
    if (QuestManager.Instance.questList.Count > 4)
        return;
	
    // 현재 퀘스트의 순서와 맞는 인덱스를 클래스에 저장하여 불러오도록 초기화
    selectNum = num;

    questTextArea.SetActive(true);
    questName.text = questList[num].questName;
    questDay.text = $"{questList[num].day}일";
    questNpc.text = $"NPC: [{questList[num].npc}]";
    questDes.text = questList[num].description;
    int currentItemCount = InventoryManager.Instance.inventory.CheckItemCount(questList[num].item, questList[num].itemLevel);
    questGoal.text = $"{questList[num].item.itemName} {questList[num].amount}개 제작";
    questExpReward.text = questList[num].exp.ToString() + " Exp";
    questGoldReward.text = questList[num].gold.ToString() + " G";
}

Accept버튼을 클릭 시 퀘스트를 수주


// 퀘스트를 수주를 하는 버튼 등록 메서드
public void AddQuest()
{
	// SerchQuest(int num)에서 selectNum의 변수를 인덱스를 사용 
    // 퀘스트를 추가했으므로 선택한 퀘스트의 버튼 및 텍스트를 변경
    orders[selectNum].detailButton.interactable = false;
    orders[selectNum].questNameText.text = "퀘스트가 없습니다.";

    QuestManager.Instance.AddQuest(questList[selectNum]);
}

인게임 테스트 사진

profile
한국사람

0개의 댓글