- Home /
I need to make 4 Buttons in this code, i dont know how
Hi, i have this functional code, when this script detect the frame marker it show a GUI Animation menu for 5 animations, in this code im just have one button, ¿how can i add other 4 button in the same code? Thanks for your answer.
using UnityEngine;
using System.Collections;
public class ButtonPopup : MonoBehaviour, ITrackableEventHandler {
private TrackableBehaviour mTrackableBehaviour;
private bool mShowGUIButton = false;
private Rect mButtonRect = new Rect(50,50,120,60);
void Start () {
mTrackableBehaviour = GetComponent<TrackableBehaviour>();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler(this);
}
}
public void OnTrackableStateChanged(
TrackableBehaviour.Status previousStatus,
TrackableBehaviour.Status newStatus)
{
if (newStatus == TrackableBehaviour.Status.DETECTED ||
newStatus == TrackableBehaviour.Status.TRACKED)
{
mShowGUIButton = true;
}
else
{
mShowGUIButton = false;
}
}
void OnGUI() {
if (mShowGUIButton) {
// draw the GUI button
if (GUI.Button(mButtonRect, "Correr")) {GameObject.Find("dilophosaurio").animation.Play("run");
// do something on button click
}
}
}
}
Answer by Orzel · May 15, 2014 at 08:00 AM
void OnGUI() {
if (mShowGUIButton) {
//Draw the GUI button
if (GUI.Button(Rect, "Text1")){
// do something
}
if (GUI.Button(Rect, "Text2")){
// do something
}
if (GUI.Button(Rect, "Text3")){
// do something
}
if (GUI.Button(Rect, "Text4")){
// do something
}
}
}
And for each button you will need to create a new Rectangle. The origin of the screen is the top left corner.
To create all your rectangles : private Rect mButtonRect_1 = new Rect(50,50,120,60); private Rect mButtonRect_2 = new Rect(50,110,120,60); private Rect mButtonRect_3 = new Rect(50,170,120,60); private Rect mButtonRect_4 = new Rect(50,230,120,60);
When I do that, I usually like to use the Screen Size : http://docs.unity3d.com/Documentation/ScriptReference/Screen.html (Screen.width/Screen.height) that way the buttons will scale depending on your screen (super useful on mobile platforms)