public void InTouchArea(TouchPointScript conTouch) { if (conTouch.name != "Default" && canLook) { StaticCorouting.Start("TimeCounting", TimeCounting(conTouch)); } }
// ===================================================== private function =========================================================== // 지정된 TouchPoint 최소 관찰 시간 제어 IEnumerator TimeCounting(TouchPointScript conTouch) { float touchPointTime = 0.0f; // 1초동안 TouchPoint를 돋보기로 보아야 관찰한것으로 인정 while (touchPointTime < 1.0f) { touchPointTime += Time.deltaTime; yield return(null); } // 우선 우유배달소년만 다르게 작동되므로 따로 하드코딩.. 시간이 없다.. if (conTouch.nPCSpecialWork == TouchPointScript.NPCSpecialWork.MILKBOY) { canLook = false; GameObject.FindObjectOfType <ObservationManager>().GetItem("기 록", "흉터 같은 게 있다. 좀 갈라진 것 같다…?", "", GameObject.Find("07_AfterFindScar").GetComponent <ReactionCollection>()); } else { canLook = true; // 해당 이벤트들을 처리 ParsingData tempData = Resources.Load("CSVData/All Observation List Asset") as ParsingData; for (int i = 0; i < tempData.list.Count; i++) { // 이벤트를 찾아서.. if (tempData.list[i]["ID"] as string != conTouch.ID) { continue; } // 이 이벤트에서 정보들을 추출 string npcName = tempData.list[i]["Character"] as string; string talkScript = (tempData.list[i]["TalkScript"] as string).Replace("/", ","); string division = tempData.list[i]["Division"] as string; string condition = tempData.list[i]["Condition"] as string; // 추출한 정보를 Manager로 전송하여 처리 switch (division) { case "x": // 별다른 이벤트가 없이 대사만 처리. GameObject.FindObjectOfType <ObservationManager>().GetItem("", "", talkScript, null); break; case "item": // 얻는 아이템의 이름 확인 string itemName = tempData.list[i]["Param"] as string; // 이 아이템을.. AllConditions conditions = Resources.Load <AllConditions>("AllConditions"); foreach (Condition tempCondition in conditions.conditions) { // 이전에 아이템을 얻은적이 있는지 확인 if (tempCondition.description == condition) { // 이전에 얻은 아이템이면.. if (tempCondition.satisfied == true) { // 대사만 처리 GameObject.FindObjectOfType <ObservationManager>().GetItem("", "", talkScript, null); } // 이전에 얻은 적이 없다면.. else { // 아이템을 획득하였음을 기록 tempCondition.satisfied = true; // 실제 아이템을 획득 ContentScript tempcontent = GameObject.FindObjectOfType <ContentScript>(); string itemID = tempcontent.GetIDByName(itemName); tempcontent.GetItem(itemID); // 획득한 아이템에 대한 대사 처리 GameObject.FindObjectOfType <ObservationManager>().GetItem(itemName, tempcontent.GetExpByName(itemName), talkScript, null); } break; } } break; case "character": // 얻는 정보의 이름 확인 string infoName = tempData.list[i]["Param"] as string; // 이 정보를.. conditions = Resources.Load <AllConditions>("AllConditions"); foreach (Condition tempCondition in conditions.conditions) { // 이전에 정보를 얻은적이 있는지 확인 if (tempCondition.description == condition) { // 이전에 얻은 정보이면.. if (tempCondition.satisfied == true) { // 대사만 처리 GameObject.FindObjectOfType <ObservationManager>().GetItem("", "", talkScript, null); } // 이전에 얻은 적이 없다면.. else { // 정보를 획득하였음을 기록 tempCondition.satisfied = true; // 해당 아이템을 획득 DocumentCharacterManager tempDocument = GameObject.FindObjectOfType <DocumentManager>().character; CharacterSlot tempSlot = tempDocument.GetSlot(npcName); tempSlot.characterExp += "------------------\n"; tempSlot.characterExp += infoName + "\n"; tempDocument.CharacterKnow(npcName); // 대사 처리 GameObject.FindObjectOfType <ObservationManager>().GetItem("기 록", infoName, talkScript, null); } break; } } break; case "tutorial": // 이 정보를.. conditions = Resources.Load <AllConditions>("AllConditions"); foreach (Condition tempCondition in conditions.conditions) { // 이전에 정보를 얻은적이 있는지 확인 if (tempCondition.description == condition) { // 대사만 처리 GameObject.FindObjectOfType <ObservationManager>().GetItem("", "", talkScript, null); // 정보를 획득하였음을 기록 tempCondition.satisfied = true; break; } } break; } } } }
public void OutTouchArea() { StaticCorouting.Stop("TimeCounting"); conTouch = null; }
// 현재 모드에서 특정 Area 접근 public void InTouchArea(TouchPointScript conTouch) { touchMode.InTouchArea(conTouch); }
// 현재 mode에서의 버튼다운 수행 public void OnButtonDownNPC(TouchPointScript conTouch) { touchMode.OnButtonDownNPC(conTouch); }
public void OnButtonDownNPC(TouchPointScript conTouch) { }