示例#1
0
    void ObjectRay()
    {
        if (Input.GetButtonDown("Fire1") && !backScript.inMenu && current)
        {
            if (current != neVibran)
            {
                //Open menu
                objectScript = rayed.GetComponent <ObjectScript> ();
                panel.SetActive(true);
                Cursor.visible    = true;
                Cursor.lockState  = CursorLockMode.None;
                FPSscript.enabled = false;
                backScript.inMenu = true;
                crosshair.SetActive(false);
                backScript.StartMenu(instrumentScript.Actions, objectScript.rightAction);
            }
            else
            {
                ErrorMessage("Сначала нужно выбрать инструмент");
            }
        }

        if ((backScript.isBacking) && (backScript.inMenu))
        {
            //Checking for answer
            if (backScript.isAnswering)
            {
                backScript.isAnswering = !backScript.isAnswering;
                //Проверяем правильность, выводим ошибки
                if (!objectScript.isDone)
                {
                    if (objectScript.rightInstrument == instrumentScript.instrName)
                    {
                        if (backScript.answer)
                        {
                            if (rightAnswers == objectScript.rightOrder)
                            {
                                CorrectMessage();
                                RightAnswers++;
                                objectScript.Action();

                                if (instrumentScript.isItem)
                                {
                                    ForItem();
                                    CorrectMessage();
                                }
                            }
                            else
                            {
                                WrongAnswers++;
                                ErrorMessage("Неправильный порядок действий");
                            }
                        }
                        else
                        {
                            WrongAnswers++;
                            ErrorMessage("Неправильное действие");
                        }
                    }
                    else
                    {
                        WrongAnswers++;
                        ErrorMessage("Нужен другой инструмент");
                    }
                }
                else
                {
                    WrongAnswers++;
                    ErrorMessage("Это действие уже выполнено");
                }
            }

            //Closing menu
            Cursor.visible       = false;
            Cursor.lockState     = CursorLockMode.Locked;
            FPSscript.enabled    = true;
            backScript.inMenu    = false;
            backScript.isBacking = false;
            panel.SetActive(false);
            crosshair.SetActive(true);
        }
    }