#c# #unity3d #augmented-reality #vuforia
Вопрос:
Я хочу спросить, как сделать сразу 2 виртуальные кнопки? Я действительно запутался в «(имя переменной).GetComponent().RegisterOnButtonPressed(OnButtonPressed);» потому что я хочу сделать 2 vb. это мой код, пожалуйста, исправьте меня, если что-то не так, пожалуйста, помогите мне, спасибо.
public class VBManager : MonoBehaviour
{
// private fields to store models
private GameObject sc_brosur;
private GameObject sc_video;
private GameObject btn_1;
private GameObject btn_2;
// memanggil scene ketika loaded
void Start()
{
// mencari child dari object ini yang memiliki script VirtualButtonBehaviour
btn_1 = GameObject.Find("btn_info");
btn_2 = GameObject.Find("btn_video");
btn_1.GetComponent<VirtualButtonBehaviour>().RegisterOnButtonPressed(OnButtonPressed);
btn_1.GetComponent<VirtualButtonBehaviour>().RegisterOnButtonReleased(OnButtonReleased);
btn_2.GetComponent<VirtualButtonBehaviour>().RegisterOnButtonPressed(OnButtonPressed);
btn_2.GetComponent<VirtualButtonBehaviour>().RegisterOnButtonReleased(OnButtonReleased);
// setelah tracking camera model bisa muncul ketika ditekan
sc_brosur.SetActive(false);
sc_video.SetActive(false);
btn_1.SetActive(true); //vb brosur
btn_2.SetActive(true); //vb video
}
/// <summary>
/// memanggil objek ketika virtual button ditekan (eksekusi)
/// </summary>
public void OnButtonPressed(VirtualButtonBehaviour vb)
{
Debug.Log("Button pressed!");
switch (vb.VirtualButtonName)
{
case "btn_info":
btn_1.SetActive(true);
btn_2.SetActive(true);
sc_video.SetActive(false);
sc_brosur.SetActive(true);
break;
case "btn_video":
btn_1.SetActive(true);
btn_2.SetActive(false);
sc_video.SetActive(true);
sc_brosur.SetActive(false);
break;
}
}
public void OnButtonReleased(VirtualButtonBehaviour vb)
{
Debug.Log("Button released!");
}
}
Комментарии:
1. Так что же именно не так? В чем заключается вопрос? Похоже, у вас уже есть две кнопки, которые выполняют две разные функции в соответствии с переключателем имен … что-то работает не так, как ожидалось? Должно ли в первом случае, может быть, скорее быть
btn_1.SetActive(false);
?2. У меня проблема, когда камера направлена на прямое отображение объекта ar, я имею в виду, что при нажатии виртуальной кнопки будет отображаться объект, а не объект, который сразу появляется перед нажатием. и я не понимаю, как зарегистрировать vb сразу с 2 vb, я видел примеры на YouTube, но в основном использую только 1 виртуальную кнопку