- Home /
An instance of type 'Timer' is required to access non static member 'paused'
Hi! I am a noob and just started using unity. I want to make a pause menu when pressing p. And I just made some GUI Buttons and a GUI Box. The Consule said something I didnt know how to fix thats wie im asking you. I also wanted to make the buttons be above the box.
This is my code:
var windowRect : Rect = Rect (0, 0, 1033, 580); var style : GUIStyle; var ButtStyle : GUIStyle;
function OnGUI () {
if(Input.GetButtonUp("pause") && Timer.paused == false){
if (GUI.Button(Rect(Screen.width / 2,100,300,50),"Continue", ButtStyle))
Debug.Log("Continue");
if (GUI.Button(Rect(Screen.width / 2,170,300,50),"Map", ButtStyle))
Debug.Log("Map");
if (GUI.Button(Rect(Screen.width / 2,240,300,50),"Options", ButtStyle))
Debug.Log("Options");
if (GUI.Button(Rect(Screen.width / 2,310,300,50),"Guide", ButtStyle))
Debug.Log("Guide");
if (GUI.Button(Rect(Screen.width / 2,380,300,50),"To Menu", ButtStyle))
Debug.Log("To Menu");
if (GUI.Button(Rect(Screen.width / 2,450,300,50),"Exit", ButtStyle))
Debug.Log("Exit");
GUI.Box(Rect(windowRect), "Activanimals", style);
}
else if(Input.GetButtonUp("pause") && Timer.paused == true){
}
}
The timer is a other script and has a boolean named paused
Answer by hiddenspring81 · May 18, 2013 at 04:15 PM
All class-member will fall into one of two categories; instance or static. Instance methods can only be accessed on instances of a particular class, that is, you need to instantiate the class before you can use the method. Static methods can be accessed globally, without an instance of the class. For example,
public class Foo
{
public static void SomeStaticMethod () { }
public void SomeInstanceMethod () { }
}
And I'd use these methods as follows,
var instance = new Foo();
// Called using an instance of Foo
instance.SomeInstanceMethod();
// Called using the Foo class interface
Foo.SomeStaticMethod();
The error message that your seeing is because Timer doesn't have a static member named paused. My guess is that paused is an instance member, and not a static member. In other words, it's defined as
public class Timer
{
// It's an instance member
public bool paused;
}
And it should be defined as
public class Timer
{
// Now it's an static member
public static bool paused;
}
Your answer
Follow this Question
Related Questions
Error on movement script. 1 Answer
loop GUI Buttons doesn`t respond 0 Answers
Problems while setting up buttons on the GUI 0 Answers
On Screen Button Controls 0 Answers