multiple buttons to open world canvases in vr
Hi, I'm trying to create an in-game iPad tablet to access infos and settings. I'm using the VRTK for interactions and vive set
It's a simple gameobject with some child canvases, the initial one with buttons as widgets, plus a few options to regulate volume and stuff. Basically each button will deactivate the main canvas and open a new one, each button a different page. To avoid wet code I'm trying to make the script so that it can identify the tag of the button and select the new canvas accordingly, but I have little idea how. Found that I could use the Event System to identifiy the buittons currently interacted, but I havent found a way to apply it in my case
Hee's the script, so far I'm only working with one page so it reads only the tag of the objerct I've applyed it to
public class InfoManager : MonoBehaviour {
public Transform MainMenu, CappadociaPage, PrimPage, UnifiPage, MiurPage, SurveyPage;
public AudioSource Tap;
private bool buttonClicked;
public Transform InfoPage;
public GameObject buttonUsed;
private void Start()
{
// Detect which page the menu should go to based on the button clicked
if (gameObject.tag == "Cappadocia")
{
InfoPage = CappadociaPage;
}
else if (gameObject.tag == "PRIM")
{
InfoPage = PrimPage;
}
else if (gameObject.tag == "UNIFI")
{
InfoPage = UnifiPage;
}
else if (gameObject.tag == "MIUR")
{
InfoPage = MiurPage;
}
else if (gameObject.tag == "survey")
{
InfoPage = SurveyPage;
}
}
private void Update()
{
GameObject buttonUsed = GameObject.Find("EventSystem");
// Switch between the menu and the info page
if (!buttonClicked)
{
MainMenu.gameObject.SetActive(true);
InfoPage.gameObject.SetActive(false);
}
else
{
MainMenu.gameObject.SetActive(false);
InfoPage.gameObject.SetActive(true);
}
}
// Toggles the info page
public void ReadInfoPage(bool clicked)
{
// detect if the page button has been clicked
if (!buttonClicked)
{
if (clicked == true)
{
buttonClicked = true;
Tap.Play();
}
else
{
buttonClicked = false;
Tap.Play();
}
}
}
// stores the button clicked in the event system
public void WhichClickedButton()
{
if (!buttonClicked)
{
EventSystem.current.currentSelectedGameObject.GetComponent<GameObject>();
}
}
}
On a side not it's currently working in changing cancases but for some reason I can't interact with the opened canvas, the UI pointer doesn't seem to recognize it
Your answer
Follow this Question
Related Questions
How to hide x number of button while the button its doing something.. 0 Answers
GearVR Unity 5.5 Touchpad Input Button Press Inconsistent? 0 Answers
Deleting virtual buttons in vuforia unity ar. 1 Answer
How do I set my canvas / camera to represent what will be put on phone screen? 0 Answers
Laser pointer style UI interaction in VR 2 Answers