Как создать 2 виртуальные кнопки в 1 сцене

#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 виртуальную кнопку