Hi all,
I have a menu script in js and I have converted it over to c# using this convertor because OUYA dev is in c# and to get the controller to work i have to do it this way.
Any hoo… the js script works perfectly but the c# version gives me six errors all pointing at the “case” section. Could any of you kind folk have a look and point me in the right direction to fixing it.
The error I get on all six accounts is: Assets/Scripts/Menu.cs(45,17): error CS0266: Cannot implicitly convert type int' to
Menu.CurrentFocus’. An explicit conversion exists (are you missing a cast?)
using UnityEngine;
using System.Collections;
public class Menu : MonoBehaviour {
GUISkin guiSkin;
AudioClip selectAudio;
int state = 0;
enum CurrentFocus {button1=1, button2=2, button3=3}
private CurrentFocus currentFocus = CurrentFocus.button1;
void Update (){
if (Input.GetKeyDown(KeyCode.Space) || OuyaInput.GetButtonDown(OuyaButton.O, OuyaPlayer.P01)) {
if(state == 0)Application.LoadLevel("Level1");
else if(state == 1)Application.LoadLevel("HowToPlay");
else if(state == 2)Application.LoadLevel("Credits");
}
if ( (OuyaInput.GetButtonDown(OuyaButton.DD, OuyaPlayer.P01)) || (OuyaInput.GetButtonDown(OuyaButton.DU, OuyaPlayer.P01)) ) {
audio.Play();
}
if (Input.GetKeyDown(KeyCode.DownArrow) || OuyaInput.GetButtonDown(OuyaButton.DD, OuyaPlayer.P01)) {
state++;
if(state > 2) state = 2;
}
if (Input.GetKeyDown(KeyCode.UpArrow) || OuyaInput.GetButtonDown(OuyaButton.DU, OuyaPlayer.P01)) {
state--;
if(state < 0) state = 0;
}
switch (currentFocus) {
case 1:
if (Input.GetKeyDown(KeyCode.DownArrow) || OuyaInput.GetButtonDown(OuyaButton.DD, OuyaPlayer.P01)) {
currentFocus = 2;
} else if (Input.GetKeyDown(KeyCode.UpArrow) || OuyaInput.GetButtonDown(OuyaButton.DU, OuyaPlayer.P01)) {
currentFocus = 1;
}
break;
case 2:
if (Input.GetKeyDown(KeyCode.DownArrow) || OuyaInput.GetButtonDown(OuyaButton.DD, OuyaPlayer.P01)) {
currentFocus = 3;
} else if (Input.GetKeyDown(KeyCode.UpArrow) || OuyaInput.GetButtonDown(OuyaButton.DU, OuyaPlayer.P01)) {
currentFocus = 1;
}
break;
case 3:
if (Input.GetKeyDown(KeyCode.DownArrow) || OuyaInput.GetButtonDown(OuyaButton.DD, OuyaPlayer.P01)) {
currentFocus = 3;
} else if (Input.GetKeyDown(KeyCode.UpArrow) || OuyaInput.GetButtonDown(OuyaButton.DU, OuyaPlayer.P01)) {
currentFocus = 2;
}
break;
}
}
void OnGUI (){
GUI.skin = guiSkin;
GUI.SetNextControlName("1");
GUI.Button( new Rect(625,490,300,100), "", "button1");
GUI.SetNextControlName("2");
GUI.Button( new Rect(625,575,300,100), "", "button2");
GUI.SetNextControlName("3");
GUI.Button( new Rect(625,660,300,100), "", "button3");
switch (currentFocus) {
case 1:
GUI.FocusControl("1");
break;
case 2:
GUI.FocusControl("2");
break;
case 3:
GUI.FocusControl("3");
break;
}
}
}
Many Thanks in advance