B
B
Bebronyukh Savory2020-05-13 19:40:05
Unity
Bebronyukh Savory, 2020-05-13 19:40:05

Why doesn't c# unity script work?

I recently started learning Unity and wrote a c# script:

SCRIPT
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TerminalControl : MonoBehaviour
{   
    

    public bool InSp;
    public string level =" 0";
    public string[] Level1Passwords = {"crazy","dino","google","book","2012"};
    public string[] Level2Passwords = {"crazydino","[email protected]#53","HellO12!a","123456789!","ChikI_BaM"};
    public string[] Level3Passwords = {"crazy","dino","google","book","2012"};


    public int[] rand = {2};

    enum screen {mainMenu, Password, Win};
    screen CurrenScreen = screen.mainMenu;
    public AudioClip testSound;
    void Start()
    {   
        
        ShowMainMenu("Привет");


    }



    void ShowMainMenu(string hello){
        

        CurrenScreen = screen.mainMenu;
        Terminal.ClearScreen();
        Terminal.WriteLine(hello+", что ты хочешь взломать? \n");
        Terminal.WriteLine("1) Компьютер библиотеки");
        Terminal.WriteLine("2) Компьютер в университете");
        Terminal.WriteLine("3) Главный компьютер в Пентагоне \n");

        Terminal.WriteLine("Введите ваш выбор: ");




    }


    void libraryHack(){
        CurrenScreen = screen.Password;
        AudioSource audio = gameObject.GetComponent<AudioSource>();
        audio.Play();


        Terminal.WriteLine("Вы выбрали уровень 1 :\"Взлом компьютера в библиотеке\", подключение к хосту библиотеки...");

        Terminal.WriteLine("Подключение установленно...");

        







    }

        void pentagonHack(){
        CurrenScreen = screen.Password;
        AudioSource audio = gameObject.GetComponent<AudioSource>();
        audio.Play();


        Terminal.WriteLine("Вы выбрали уровень 3 :\"Взлом компьютера в рентагоне\", обход защиты в пентагоне...");

        Terminal.WriteLine("Подключение установленно...");

        







    }


    void univerHack(){
        CurrenScreen = screen.Password;
        AudioSource audio = gameObject.GetComponent<AudioSource>();
        audio.Play();


        Terminal.WriteLine("Вы выбрали уровень 2 :\"Взлом компьютера в Университете\", подключение к главному серверу униерстета...");

        Terminal.WriteLine("Подключение установленно...");

        







    }


    void mainMenuInfo(string input){

            if (input == "/clean"){
                Terminal.ClearScreen();}

            else if (input == "1"){
                
                Terminal.ClearScreen();
                level = "1";
                libraryHack();
                }

            else if (input == "2"){
                Terminal.ClearScreen();
                level = "2";
                univerHack();
                }

            else if (input == "3"){
                Terminal.ClearScreen();
                level = "3";
                pentagonHack();
                }



            else if (input == "/menu"){
                ShowMainMenu("Рад видеть вас снова");

            }

            else Terminal.WriteLine("Здравствуй "+input+",введи пожалуйста правильное значение!");




    }




    void libraryHackInfo(string input, int id){
        print(rand[0]);
        if (input == "/clean"){
            Terminal.ClearScreen();}
        
        else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == Level1Passwords[id])
            {
                Terminal.WriteLine("Ейбои мокорошка!");
            }





    }


    void univerHackInfo(string input){
        if (input == "/clean"){
            Terminal.ClearScreen();}
        
        else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == Level2Passwords[0])
            {
                Terminal.WriteLine("Ейбои мокорошка2!");
            }





    }


    void pentagonHackInfo(string input){
        if (input == "/clean"){
            Terminal.ClearScreen();}
        
        else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == "/menu")
            {
                ShowMainMenu("Рад видеть тебя снова");
            }

                else if (input == Level3Passwords[0])
            {
                Terminal.WriteLine("Ейбои мокорошка3!");
            }





    }



    // Update is called once per frame
    
    
    void OnUserInput(string input)
  {
        if (CurrenScreen == screen.mainMenu){
            mainMenuInfo(input);
            
  }
    else 
        if (CurrenScreen == screen.Password && level=="1" ){
            InSp=false;
            libraryHackInfo(input,Random.Range(0,Level1Passwords.Length));


        }
    

        else 
            if (CurrenScreen == screen.Password && level=="2"){
                univerHackInfo(input);


        }

        else 
            if (CurrenScreen == screen.Password && level=="3"){
                pentagonHackInfo(input);


        }
        
    }
    
}

And the error comes out "UnityException: RandomRangeInt is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called from MonoBehaviour 'TerminalControl'" Thank you in

BiI34o6.png

advance for your answer!

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question