Из списка в графический интерфейс - PullRequest
0 голосов
/ 13 сентября 2018

Я создаю в своей игре магазин для покупки виртуальных товаров.

Страница основного магазина

Main Shop Page

В каждой группе естьсвои предметы.Я создал вид, где каждый раз виден только один элемент с кнопками для перехода к предыдущему и следующему элементу.

Меню выбора определенной группы - Команды

Specific group selection Menu - Teams

Вопрос в том, что я не знаю, как показать список , где у меня есть элементы, в этом последнем окне и сделать так, чтобы он касался кнопок предыдущего / следующего спискапоказывает различные элементы.

Каждый элемент в списке называется inventory[x] (x = число в цикле) и имеет свойства itemName и itemDescription.

Как я могу заставить код взаимодействовать с графическим интерфейсом пользователя?

Я создал 6 списков инвентаря (каждый для одного типа разблокируемого виртуального товара), и я использую API GameSparks для онлайн-функций, таких как профиль игрока.

Списки объявляются в начале скрипта:

public static List<Inventario> inventarioEquipos = new List<Inventario>(); //Inventory for Teams
public static List<Inventario> inventarioPelotas = new List<Inventario>(); //Inventory for Balls
public static List<Inventario> inventarioModos = new List<Inventario>(); //Inventory for Modes
public static List<Inventario> inventarioVitores = new List<Inventario>(); //Inventory for Cheers
public static List<Inventario> inventarioCampos = new List<Inventario>(); //Inventory for Fields
public static List<Inventario> inventarioFondos = new List<Inventario>(); //Inventory for Backgrounds

В методе Awake я вызываю:

    Info_Botones ("Equipos"); //I call this function for each group, to load its items and show how many items of a total of X the player owns. If you look at the first picture, will see below TEAMS: 1/2. That's what this function is for (besides to load all the unlockables in separated lists).
    Info_Botones ("Pelotas");
    Info_Botones ("Modos");
    Info_Botones ("Vitores");
    Info_Botones ("Campos");
    Info_Botones ("Fondos");

Код основной функции имеет видследует:

    private void Info_Botones(string tipoDeInventario) { //"tipoDeInventario" means InventoryType and I use it to pass to the function which type of inventory I want to load (Teams, Balls, Modes, Cheers, Fields or Backgrounds)

    int numero = 0;

    new LogEventRequest()
        .SetEventKey("INVENTARIO")
        .SetEventAttribute("TAG_TYPE", tipoDeInventario)
        .Send((response) =>
            {
                if (!response.HasErrors)
                {
                    List<object> entryList = response.ScriptData.GetObjectList("result") as List<object>;
                    for (int i = 0; i < entryList.Count; i++)
                    {
                        Dictionary<string, object> entry = entryList[i] as Dictionary<string, object>;

                        int itemId = i;
                        string itemName = (entry["name"]).ToString();
                        string itemDescription = (entry["description"]).ToString();
                        int itemPrice = int.Parse((entry["currency1Cost"].ToString()));
                        string itemInteractable = (entry["interactable"]).ToString();

                        Inventario inv = new Inventario(itemId, itemName, itemDescription, itemPrice, itemInteractable);


                        if(tipoDeInventario == "Equipos") {
                            inventarioEquipos.Add(inv);
                            if (inventarioEquipos[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else if(tipoDeInventario == "Pelotas") {
                            inventarioPelotas.Add(inv);
                            if (inventarioPelotas[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else if(tipoDeInventario == "Modos") {
                            inventarioModos.Add(inv);
                            if (inventarioModos[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else if(tipoDeInventario == "Vitores") {
                            inventarioVitores.Add(inv);
                            if (inventarioVitores[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else if(tipoDeInventario == "Campos") {
                            inventarioCampos.Add(inv);
                            if (inventarioCampos[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else if(tipoDeInventario == "Fondos") {
                            inventarioFondos.Add(inv);
                            if (inventarioFondos[i].itemInteractable == "False") {
                                numero++;
                            }
                        } else {

                        }
                    }
                    if(tipoDeInventario == "Equipos") {
                        txtBtnCantidadEquipos.text = numero.ToString() + "/" + inventarioEquipos.Count;
                    } else if(tipoDeInventario == "Pelotas") {
                        txtBtnCantidadPelotas.text = numero.ToString() + "/" + inventarioPelotas.Count;
                    } else if(tipoDeInventario == "Modos") {
                        txtBtnCantidadModos.text = numero.ToString() + "/" + inventarioModos.Count;
                    } else if(tipoDeInventario == "Vitores") {
                        txtBtnCantidadVitores.text = numero.ToString() + "/" + inventarioVitores.Count;
                    } else if(tipoDeInventario == "Campos") {
                        txtBtnCantidadCampos.text = numero.ToString() + "/" + inventarioCampos.Count;
                    } else if(tipoDeInventario == "Fondos") {
                        txtBtnCantidadFondos.text = numero.ToString() + "/" + inventarioFondos.Count;
                    } else {

                    }

                }
                else
                {
                    Debug.Log("ERROR AL OBTENER VG DEL JUGADOR: " + response.Errors.JSON);
                }
            });

}

1 Ответ

0 голосов
/ 16 сентября 2018

Я добился этого, используя условности ЕСЛИ.Если кому-то нужен код, попросите его, и я поделюсь им (сейчас меня нет дома).

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...