- Home /
Use button to debug by showing texts in the virtual scene (virtual environment in HoloLens)
I followed Microsoft tutorial and created a new script called 'ButtonAction' that manages buttons in the 'canvas' gameobject, which contains 3 buttons.
By clicking on Button3, whose text is 'color' in my case, the script of 'ButtonAction' should be able change its text (by default, is Medical Model Explorer) to 'found'. The setup is shown in the above image as well, and the debugging view is shown in the image below. I am not sure whether the problem is from: 1. The button script is attached to three buttons, so I use the 'if' statement in the script to differentiate them. 2. I use
GameObject.Find("/SpatialBillboard/TextSubDisplay")
to find the text where I want to modify.
My code of 'ButtonAction' is as follows:
using System.Collections;
using System.Collections.Generic;
using System.Linq;using UnityEngine;
using UnityEngine.UI;
//using UnityEngine.XR.WSA.Input;
namespace Academy.HoloToolkit.Unity
{
public class ButtonAction : MonoBehaviour
{
public Button AssignYourButton;
public GameObject foundObject;
public Text changedText;
public GameObject testObject;
Vector3 moveVector = new Vector3(30f,30f,30f);
// Use this for initialization
void Start()
{
//Button btn = AssignYourButton.GetComponent<Button>();
AssignYourButton.GetComponent<Button>().onClick.AddListener(TaskOnClickTranslate);
AssignYourButton.GetComponent<Button>().onClick.AddListener(TaskOnClickRotate);
AssignYourButton.GetComponent<Button>().onClick.AddListener(TaskOnClickColor);
Debug.Log("Button Action entered.");
}
// Update is called once per frame
void Update()
{
if (AssignYourButton == GameObject.Find("Button1"))
{
TaskOnClickTranslate();
testObject.transform.Rotate(moveVector);
}
else if (AssignYourButton.GetComponent<Button>().name == "Rotate")
{
TaskOnClickRotate();
testObject.transform.Rotate(moveVector);
}
else if (AssignYourButton.GetComponent<Button>().name == "Color")
{
TaskOnClickColor();
}
}
void TaskOnClickTranslate()
{
//Debug.Log("You have clicked the button for translation!");
GestureManager.Instance.Transition(GestureManager.Instance.ManipulationRecognizer);
GestureManager.Instance.IsNavigating = false;
GestureManager.Instance.IsManipulating = true;
}
void TaskOnClickRotate()
{
//Debug.Log("You have clicked the button for rotation!");
GestureManager.Instance.Transition(GestureManager.Instance.NavigationRecognizer);
GestureManager.Instance.IsNavigating = true;
GestureManager.Instance.IsManipulating = false;
}
void TaskOnClickColor()
{
foundObject = GameObject.Find("/SpatialBillboard/TextSubDisplay");
//changedText = foundObject.GetComponent<Text>();
foundObject.GetComponent<Text>().text = "found";
}
}
}
Your answer

Follow this Question
Related Questions
Make more buttons appear, on button click. 1 Answer
Input Button is not setup Error 1 Answer
buttons not being able to be clicked? 1 Answer
RayCast Activating A Button 0 Answers
Please help me debugging a script! 0 Answers