Scripts don't seem to work at all

Edited: Solved by creating an empty game object and placing single script file into said game object, but how do I go about placing scripts that work with other scripts in subfolders into a game object?

All of my scripts are listed under ‘Assets’ in the folders that they were imported to. I’ve tried multiple scripts from the Asset Store such as

Pause Menu:

Inventory

They don’t work in the Unity Editor or the built project that I build and run. Pause menu is supposed to activate when I hit the ‘escape’ key but nothing displays, and Inventory is supposed to display a GUI when I hit ‘i’ but again nothing displays. I also followed a small RTS camera tutorial to the T and even though it worked for the tutor, it didn’t seem to work for me. Am I missing something? For example, here is the code for the pause menu so you don’t have to download it yourself:

//*******************************************************************************
//*                                                                                            *
//*                            Written by Grady Featherstone                                *
//                                        © Copyright 2011                                        *
//*******************************************************************************
var mainMenuSceneName : String;
var pauseMenuFont : Font;
private var pauseEnabled = false;         

function Start(){
    pauseEnabled = false;
    Time.timeScale = 1;
    AudioListener.volume = 1;
    Screen.showCursor = false;
}

function Update(){

    //check if pause button (escape key) is pressed
    if(Input.GetKeyDown("escape")){
 
        //check if game is already paused     
        if(pauseEnabled == true){
            //unpause the game
            pauseEnabled = false;
            Time.timeScale = 1;
            AudioListener.volume = 1;
            Screen.showCursor = false;         
        }
     
        //else if game isn't paused, then pause it
        else if(pauseEnabled == false){
            pauseEnabled = true;
            AudioListener.volume = 0;
            Time.timeScale = 0;
            Screen.showCursor = true;
        }
    }
}

private var showGraphicsDropDown = false;

function OnGUI(){

GUI.skin.box.font = pauseMenuFont;
GUI.skin.button.font = pauseMenuFont;

    if(pauseEnabled == true){
     
        //Make a background box
        GUI.Box(Rect(Screen.width /2 - 100,Screen.height /2 - 100,250,200), "Pause Menu");
     
        //Make Main Menu button
        if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 - 50,250,50), "Main Menu")){
            Application.LoadLevel(mainMenuSceneName);
        }
     
        //Make Change Graphics Quality button
            if(GUI.Button(Rect(Screen.width /2 - 100,Screen.height /2 ,250,50), "Change Graphics Quality")){
         
            if(showGraphicsDropDown == false){
                showGraphicsDropDown = true;
            }
            else{
                showGraphicsDropDown = false;
            }
        }
     
        //Create the Graphics settings buttons, these won't show automatically, they will be called when
        //the user clicks on the "Change Graphics Quality" Button, and then dissapear when they click
        //on it again....
        if(showGraphicsDropDown == true){
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 ,250,50), "Fastest")){
                //QualitySettings.currentLevel = QualityLevel.Fastest;
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Fastest;
            }
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 50,250,50), "Fast")){
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Fast;
            }
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 100,250,50), "Simple")){
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Simple;
            }
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 150,250,50), "Good")){
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Good;
            }
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 200,250,50), "Beautiful")){
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Beautiful;
            }
            if(GUI.Button(Rect(Screen.width /2 + 150,Screen.height /2 + 250,250,50), "Fantastic")){
                QualitySettings.SetQualityLevel.currentLevel = QualityLevel.Fantastic;
            }
         
            if(Input.GetKeyDown("escape")){
                showGraphicsDropDown = false;
            }
        }
     
        //Make quit game button
        if (GUI.Button (Rect (Screen.width /2 - 100,Screen.height /2 + 50,250,50), "Quit Game")){
            Application.Quit();
        }
    }
}

Generally speaking, a script you create is an extension to monobehaviour. You’re writing components which are placed on game objects to run.

I’d suggests doing some tutorials and learning the fundamentals of unity.

1 Like

Hi there, I’d recommend you have a look at this to answer some of your questions regarding scripts.
And highly recommend going through as much as you can here.
Scripts in your project view (where you imported some examples) will not do anything, they are technically not in your game yet. You have to attached them to a gameobject in your game/scene, whether its a health script attached to your player or an inventory system which is attached to an invisible gameobject anywhere in your scene.
Good luck!

1 Like