示例#1
0
    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));
            }
        }
    }
示例#2
0
 IEnumerator ShowFeedback(string message, float delay, MedManGameController gc)
 {
     gc.feedback.text = message;
     yield return new WaitForSeconds(delay);
     gc.feedback.text = "";
 }