IEnumerator text_effect(Daily_quest_form day_quest) { text_done = 0; for (int i = 0; i < day_quest.text.Length; i++) { box_text.text = day_quest.text.Substring(0, i + 1); yield return(new WaitForSeconds(0.05f)); } hilight_text.text = day_quest.summary; text_done = 1; }
//화면 어두워지면서 퀘스트 주는 거 public void show_quest_box(Daily_quest_form day_quest) { quest_bg.SetActive(true); quest_giver[day_quest.person].SetActive(true); quest_box.gameObject.SetActive(true); hilight_text.gameObject.SetActive(true); hilight_text.text = ""; quest_box_touch.SetActive(true); text_coroutine = text_effect(day_quest); StartCoroutine(text_coroutine); triangle_coroutine = triangle_effect(); StartCoroutine(triangle_coroutine); }
//퀘스트 목록에서 클릭했을 시 public void quest_popup_open() { button_click.PlayOneShot(button_click.clip); //클릭한 오브젝트 찾아서 idx 찾기 string content_name = EventSystem.current.currentSelectedGameObject.transform.parent.gameObject.name; int idx = Int32.Parse(content_name); Daily_quest_form data = quest_Data.daily_quest_list[idx]; for (int i = 0; i < 3; i++) { persons[i].SetActive(false); } persons[data.person].SetActive(true); text.text = data.text; todo_text.text = data.todo; reward_text.text = data.reward; //state변경 및 content update if (quest_Data.daily_quest_list[idx].state == 0) { quest_Data.daily_quest_list[idx].state = 1; } quest_contents_update(); //reward button 활성화 reward_active.gameObject.SetActive(false); reward_inactive.gameObject.SetActive(false); if (quest_Data.daily_quest_list[idx].state == 2) { reward_active.gameObject.SetActive(true); } else { reward_inactive.gameObject.SetActive(true); } popup.name = idx.ToString(); popup.SetActive(true); }
//퀘스트 목록 업데이트 public void quest_contents_update() { //초기화 popup.SetActive(false); content.SetActive(false); new_exist.gameObject.SetActive(false); done_exist.gameObject.SetActive(false); //기존 자식 오브젝트들 삭제하고 다시 생성 for (int i = 0; i < content_parent.transform.childCount; i++) { Destroy(content_parent.transform.GetChild(i).gameObject); } content_parent.transform.DetachChildren(); // 튜토리얼 퀘스트 for (int i = 0; i < quest_Data.tutorial_quest_list.Count; i++) { Tutorial_quest_form data = quest_Data.tutorial_quest_list[i]; if (data.state != -1) //퀘스트 목록에 추가할 퀘스트라면 { for (int j = 0; j < 3; j++) { quest_states[j].gameObject.SetActive(false); } finish_inactive.gameObject.SetActive(false); finish_active.gameObject.SetActive(false); touch.gameObject.SetActive(false); //퀘스트 state quest_states[data.state].gameObject.SetActive(true); touch_x.gameObject.SetActive(true); type_text.text = data.type; summary_text.text = data.summary; GameObject temp_content = Instantiate(content, new Vector3(0, 0, -376), Quaternion.identity); temp_content.transform.SetParent(content_parent.transform); temp_content.SetActive(true); } } //일일 퀘스트 for (int i = 0; i < quest_Data.daily_quest_list.Count; i++) { Daily_quest_form data = quest_Data.daily_quest_list[i]; if (data.state != -1) { if (data.state == 0) { new_exist.gameObject.SetActive(true); } if (data.state == 2) { done_exist.gameObject.SetActive(true); } for (int j = 0; j < 3; j++) { quest_states[j].gameObject.SetActive(false); } finish_inactive.gameObject.SetActive(false); finish_active.gameObject.SetActive(false); touch_x.gameObject.SetActive(false); touch.gameObject.SetActive(true); quest_states[data.state].gameObject.SetActive(true); if (data.state == 2) { finish_active.gameObject.SetActive(true); } else { finish_inactive.gameObject.SetActive(true); } type_text.text = data.type; summary_text.text = data.summary; //content와 popup복제해서 부모 설정하기 GameObject temp_content = Instantiate(content, new Vector3(0, 0, -376), Quaternion.identity); temp_content.transform.SetParent(content_parent.transform); temp_content.name = i.ToString(); //이름을 인덱스로 설정 temp_content.SetActive(true); } } if (new_exist.activeSelf == true || done_exist.activeSelf == true) { StartCoroutine("quest_icon_effect"); } //json타입 변환 후 저장 if (quest_Data.daily_quest_list.Count != 0 && quest_Data.tutorial_quest_list.Count != 0) { string tutorial_quest_save = JsonUtility.ToJson(new Tutorial_Serialization(quest_Data.tutorial_quest_list)); string daily_quest_save = JsonUtility.ToJson(new Daily_Serialization(quest_Data.daily_quest_list)); PlayerPrefs.SetString("tutorial_quest", tutorial_quest_save); PlayerPrefs.SetString("daily_quest", daily_quest_save); } }