Hi,
I’m new to Unity and tried the “3DPlatformTutorial”. The first thing is, that the example code is not 100% compatible with the current version of Unity since a clobal name was used for a variable. But, this was not really hard to fix.
Now, I’d like to add the StarMenu. However, adding the StartMenuGui-script to the camera seems not to work as expected. The “OnGui()” method seems to be never called. I even added a output to the log to confirm this.
Here is the script code:
#pragma strict
// Make the script also execute in edit mode
@script ExecuteInEditMode()
var gSkin : GUISkin;
var backdrop : Texture2D;
private var isLoading = false;
function OnGui() {
Debug.Log("Called!");
if(gSkin) {
GUI.skin = gSkin;
} else {
Debug.Log("StartMenuGui: GUI Skin object missing!");
}
var backgroundStyle : GUIStyle = new GUIStyle();
backgroundStyle.normal.background = backdrop;
GUI.Label(Rect((Screen.width - Screen.height * 2) * 0.75, 0, Screen.height * 2, Screen.height), "", backgroundStyle);
GUI.Label(Rect(Screen.width / 2 - 197, 50, 400, 100), "Lerpz Escapes", "mainMenuTitle");
if(GUI.Button(Rect(Screen.width/2 - 70, Screen.height - 160, 140, 70), "Play")) {
isLoading = true;
Application.LoadLevel("TheGame");
}
var isWebPlayer = Application.platform == RuntimePlatform.OSXWebPlayer || Application.platform == RuntimePlatform.WindowsWebPlayer;
if(!isWebPlayer) {
if(GUI.Button(Rect(Screen.width/2 - 70, Screen.height - 80, 140, 70), "Quit")) {
Application.Quit();
}
}
if(isLoading) {
GUI.Label(Rect(Screen.width/2 - 110, Screen.height/2 - 60, 400, 70), "Loading...", "mainMenuTitle");
}
}
Interesting thing is, if I change the method to “Start()” it is called. With errors of course …
If it helps, I’ve added a screenshot of the “Inspector”.
Thank you in advance!
