This is my main menu script:
var dampening = 0.01;
private var windowRect = Rect ((Screen.width/2) - 100, (Screen.height/2) - 100, 200, 200);
private var openWindow : int = 0;
private var highscoreUrl = "http://prometheusgame.x10hosting.com/highscores.php";
private var highscores : String = "Loading Scores...";
function Start() {
getScores();
}
function Update() {
transform.Translate(0, Mathf.Cos(Time.time) * dampening, 0);
AudioListener.volume = PlayerPrefs.GetFloat("Volume");
}
function OnGUI () {
if(!PlayerPrefs.HasKey("Username")) {
var playerName : String;
GUILayout.BeginArea(windowRect);
GUILayout.Label("Please Provide a Username for the Leaderboard:");
playerName = GUILayout.TextField(playerName, 15);
if(GUILayout.Button("Submit")) {
PlayerPrefs.SetString("Username", playerName);
}
GUILayout.EndArea();
}
else {
switch (openWindow){
case 0:
Menu();
break;
case 1:
Highscores();
break;
case 2:
Settings();
break;
}
}
}
function Menu() {
GUILayout.BeginArea(windowRect);
if(GUILayout.Button("Single Player")) {
Application.LoadLevel (1);
}
if(GUILayout.Button("View Highscores")) {
openWindow = 1;
}
if(GUILayout.Button("Settings")) {
openWindow = 2;
}
if(GUILayout.Button("Quit")) {
Application.Quit();
}
GUILayout.EndArea();
}
function Settings() {
if(!PlayerPrefs.HasKey("Propulsion Method")) {
PlayerPrefs.SetString("Propulsion Method", "Force");
}
GUILayout.BeginArea(windowRect);
GUILayout.Label("Propulsion Mode");
if(PlayerPrefs.GetString("Propulsion Method") == "Velocity") {
if(GUILayout.Button ("Force Mode")) {
PlayerPrefs.SetString("Propulsion Method", "Force");
}
}
if(PlayerPrefs.GetString("Propulsion Method") == "Force") {
if(GUILayout.Button ("Velocity Mode")) {
PlayerPrefs.SetString("Propulsion Method", "Velocity");
}
}
if(!PlayerPrefs.HasKey("Volume")) {
PlayerPrefs.SetFloat("Volume", 1.0);
}
GUILayout.Label("Game Volume");
var volume : float = GUILayout.HorizontalSlider(PlayerPrefs.GetFloat("Volume"), 0.0, 1.0);
PlayerPrefs.SetFloat("Volume", volume);
GUILayout.Label("Username:");
playerName = PlayerPrefs.GetString("Username");
playerName = GUILayout.TextField(playerName, 15);
PlayerPrefs.SetString("Username", playerName);
if(GUILayout.Button("Return to Menu")) {
openWindow = 0;
}
GUILayout.EndArea();
}
function Highscores() {
GUILayout.BeginArea(windowRect);
GUILayout.Label(highscores);
if(GUILayout.Button("Return to Menu")) {
openWindow = 0;
}
GUILayout.EndArea();
}
function getScores() {
var hs_get : WWW = new WWW(highscoreUrl);
yield hs_get;
if(hs_get.error) {
Debug.Log(hs_get.error);
highscores = "There was an error retrieving the scores.";
}
else {
highscores = hs_get.data;
}
}
for some reason, this only works half the time in the editor, all the time in a standalone, and never in a webplayer. i’ve been wracking my brain on this for days. what have i done wrong?