public void OnDrop(PointerEventData eventData) { //Debug.Log (eventData.pointerDrag.name + "was dropped on to " + gameObject.name); //Gets the Object being dragged Draggable d = eventData.pointerDrag.GetComponent<Draggable> (); gc = GameObject.FindGameObjectWithTag ("GameController").GetComponent<MedManGameController> (); //Check that the object exists if (d != null) { if (eventData.pointerDrag.tag == "correct") { //Sets the dragged object to the drop zone's transform position d.parentToReturnTo = this.transform; if(gc.task2Start) { gc.task2Complete = true; MedManGameController.averageScore = (gc.currentScoreDosage + gc.currentScoreMedicine) / 2; GameObject answersPanel = GameObject.Find("Answer Panel"); for(int i = 0; i < answersPanel.transform.childCount; i++) { Destroy (answersPanel.transform.GetChild(i).gameObject); } if(gc.numMedicationsLeft == 0) { StartCoroutine(LoadExitScreen()); } else { gc.task1Complete = false; gc.task2Complete = false; gc.task2Start = false; StartCoroutine(StartNextMedicine()); } } else { GameObject answersPanel = GameObject.Find("Answer Panel"); for(int i = 0; i < answersPanel.transform.childCount; i++) { Destroy (answersPanel.transform.GetChild(i).gameObject); } gc.task1Complete = true; } d.destroyScript = true; StartCoroutine(ShowFeedback("That is correct, good job!", 3.5f, gc)); } else { d.destroyPlaceholder = false; Destroy(eventData.pointerDrag); if(!gc.task1Complete) gc.currentScoreMedicine -= 25.0f; else gc.currentScoreDosage -= 25.0f; gc.feedback.text = "That is incorrect, please try again."; StartCoroutine(ShowFeedback("That is incorrect, please try again.", 3.5f, gc)); } } }
IEnumerator ShowFeedback(string message, float delay, MedManGameController gc) { gc.feedback.text = message; yield return new WaitForSeconds(delay); gc.feedback.text = ""; }