private void CorrectAnswer() { QuizManager Qm = QuizManager.instance; AnswerScript answerScript = AnswerScript.instance; answerScript.correct.SetActive(false); Qm.QuizPanel.SetActive(false); Qm.Level = Qm.Level + 1; Mission.AddScore(500); }
//아이템 사용버튼을 누르면 실행 public void UseItem() { //아이템 타입이 Misc이면 Debug.Log("사용하는 아이템:" + clickedItem.name); if (clickedItem.GetComponent <Item>() != null && clickedItem.GetComponent <Item>().itemType == Item.Type.Misc) { dialog.text = "사용할 수 없는 아이템입니다"; dialogPanel.SetActive(true); return; } //equipment형 아이템을 숨긴다 if (clickedItem.tag == "item" && clickedItem.GetComponent <Item>().itemType == Item.Type.Equipment && clickedItem.name != "cat") { Renderer[] renderers = clickedItem.transform.GetComponentsInChildren <Renderer>(); Collider[] cols = clickedItem.transform.GetComponentsInChildren <Collider>(); foreach (var ren in renderers) { ren.enabled = false; } foreach (var col in cols) { col.enabled = false; } } if (clickedItem.tag == "slot" && clickedItem.GetComponent <Image>().sprite.name != "cat") { DiscardSlot(); } //아이템을 습득하지 않고 바로 사용할 경우 if (clickedItem != null) { if (clickedItem.name == items["extinguisher"].name) { Debug.Log("소화기를 사용합니다"); GameObject extinguisher = GameObject.Find(items["extinguisher"].name); extinguisher.GetComponent <Shooter>().ActivateShooter(); } if (clickedItem.name == items["alarm"].name) { Debug.Log("알람이 울립니다"); GameObject alarm = GameObject.Find(items["alarm"].name); if (alarm.GetComponent <AudioSource>().isPlaying) { alarm.GetComponent <AudioSource>().Stop(); return; } alarm.GetComponent <AudioSource>().Play(); } if (clickedItem.name == items["sand"].name) { Debug.Log("모래를 사용합니다"); GameObject sand = GameObject.Find(items["sand"].name); sand.GetComponent <Shooter>().ActivateShooter(); } if (clickedItem.name == items["towel"].name) { clickedItem.GetComponent <Item>().state = Item.Usage.USED; Destroy(clickedItem); } if (clickedItem.name == items["waterBucket"].name) { GameObject waterBucketFull = GameObject.Find(items["waterBucket"].name); waterBucketFull.GetComponent <Shooter>().ActivateShooter(); } if (clickedItem.name == items["gasValve"].name) { //이미 사용됬으면 아무것도 안함 if (clickedItem.GetComponent <Item>().state == Item.Usage.USED) { return; } Mission mission = GameManager.GetInstance().mission; //스타트미션에서 랜덤으로 붙은 불이 꺼졌을때 if (GameManager.GetInstance().stm.ranObj != "towel" && Mission.missionName == "startMission") { dialog.text = mission.missionDialog[0]; dialogPanel.SetActive(true); mission.OnMissionSucceded(); Mission.isMissonSucced = true; Mission.isMissionOn = false; } clickedItem.GetComponent <Item>().state = Item.Usage.USED; } if (clickedItem.name == items["elevator"].name) { elevatorPanel.SetActive(true); } //게임 클리어 조건 체크 if (clickedItem.name == items["door"].name) { if (Mission.ComplishedMissionCount >= 1) { if (slot1.GetComponent <Image>().sprite || slot2.GetComponent <Image>().sprite) { if (slot1.GetComponent <Image>().sprite.name == "cat" || slot2.GetComponent <Image>().sprite.name == "cat") { Mission.AddScore(1000); } } SetValueToCompleted(); gameCompletedPanel.SetActive(true); } else { dialog.text = "아직 일러요! 더 많은 미션을 성공하고 오세요!"; dialogPanel.SetActive(true); } } if (clickedItem.name == items["cat"].name) { GameObject cat = GameObject.Find(items["cat"].name); cat.GetComponent <AudioSource>().Play(); //야옹 } } //아이템을 습득하고나서 사용할 경우 if (clickedItem != null && clickedItem.GetComponent <Image>() != null && clickedItem.GetComponent <Image>().sprite != null) { Debug.Log("슬롯 이미지 이름:" + clickedItem.GetComponent <Image>().sprite.name); //슬롯에 있는 이미지가 (아이템이름)이미지면 if (clickedItem.GetComponent <Image>().sprite == GetItemImg(items["extinguisher"])) { Debug.Log("소화기를 사용합니다"); //Shooter shooter = extinguisher.GetComponent<Shooter>(); 프리펩 자체에 접근했다. 게임상의 프리펩 인스턴스와는 다르기 때문에 실행이 안된다. 실행하려면 프리펩 인스턴스에 접근해야한다. GameObject extinguisher = GameObject.Find(items["extinguisher"].name); extinguisher.GetComponent <Shooter>().ActivateShooter(); } else if (clickedItem.GetComponent <Image>().sprite == GetItemImg(items["alarm"])) { Debug.Log("알람이 울립니다"); GameObject alarm = GameObject.Find(items["alarm"].name); if (alarm.GetComponent <AudioSource>().isPlaying) { alarm.GetComponent <AudioSource>().Stop(); return; } alarm.GetComponent <AudioSource>().Play(); } else if (clickedItem.GetComponent <Image>().sprite == GetItemImg(items["sand"])) { GameObject sand = GameObject.Find(items["sand"].name); sand.GetComponent <Shooter>().ActivateShooter(); } else if (clickedItem.GetComponent <Image>().sprite == GetItemImg(items["towel"])) { //towel이라는 이름은 여러 오브젝트 인스턴스가 가지고있다. 따라서 겟콤포넌트 할때 주의(모델 임포트할때 자식이 딸려오는 모델임) GameObject towel = GameObject.Find(items["towel"].name); towel.GetComponent <Item>().state = Item.Usage.USED; } else if (clickedItem.GetComponent <Image>().sprite == GetItemImg(items["cat"])) { GameObject cat = GameObject.Find(items["cat"].name); cat.GetComponent <AudioSource>().Play(); } } }