コード例 #1
0
    void Recorrer(Interactable[] interactables)
    {
        /* * * * * * * * SE RECORRE PARA CADA SCRIPT DENTRO DEL OBJETO * * * * * * */
        for (int i = 0; i < interactables.Length; i++)     //
        {
            Interactable interactable = interactables[i];  // se asigna uno solo de ellos en cada iteracion
            for (int b = 0; b < buttonsTracked.Count; b++) // se recorren los botones rastreados (3 solamente)
            {
                EVRButtonId button = buttonsTracked[b];    // se guarda en la variable button al boton rastreado

                if (device.GetPressDown(button))           // si se está presionando ese boton
                {
                    if (!scriptButtons.ContainsKey(button) || !scriptButtons[button].Contains(interactable))
                    // si el boton no es una clave del diccionario aun o
                    // si el boton si está en el diccionario pero no tiene asigando ese script actual
                    {
                        interactable.ButtonPressDown(button, this);               // se envía la información del boton presionado al script actual
                        if (!scriptButtons.ContainsKey(button))                   // Si es la primera vez que se usa el boton
                        {
                            scriptButtons.Add(button, new List <Interactable>()); // se agrega dicho boton a la lista de botones utilizado
                        }
                        scriptButtons[button].Add(interactable);                  // se agrega el script a la lista de scripts que usa ese boton
                    }
                }
            }
        }
    }