Как добавить несколько имен в список и выбрать случайное из них?

Как можно добавить возможность игроку самостоятельно создавать поля для ввода в игре "Правда или Действие" на Unity 2D и реализовать случайный выбор данных имен из списка, возможно, используя массивы?
  • 10 декабря 2023 г. 6:06
Ответы на вопрос 2
Чтобы добавить несколько имен в список, вы можете использовать функцию `Add` списка, передавая ей имена в качестве аргументов. Вот пример:

```csharp
List<string> names = new List<string>();
names.Add("Имя1");
names.Add("Имя2");
```

Чтобы выбрать случайное имя из списка, вы можете использовать класс `Random` для генерации случайного индекса, а затем получить соответствующее имя из списка. Вот пример:

```csharp
Random random = new Random();
int randomIndex = random.Next(0, names.Count);
string randomName = names[randomIndex];
```

Чтобы позволить игроку создавать свои собственные поля для ввода, вы можете создать текстовое поле (Text Field) в пользовательском интерфейсе игры. Когда игрок вводит имя в поле и нажимает кнопку, вы можете получить текст из поля и добавить его в список имен.

Чтобы реализовать случайный выбор данных имен из списка, вы можете использовать то же самое решение, что и выше, с использованием класса `Random` и списка имен.

Вот пример реализации на Unity 2D с использованием массивов:

```csharp
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;

public class GameController : MonoBehaviour
{
    public Text nameText;
    public InputField playerNameField;
    public Button addButton;
    public Button selectButton;

    private List<string> names = new List<string>();

    private void Start()
    {
        addButton.onClick.AddListener(AddName);
        selectButton.onClick.AddListener(SelectRandomName);
    }

    private void AddName()
    {
        string playerName = playerNameField.text;
        names.Add(playerName);
        playerNameField.text = "";
    }

    private void SelectRandomName()
    {
        if (names.Count > 0)
        {
            int randomIndex = Random.Range(0, names.Count);
            string randomName = names[randomIndex];
            nameText.text = randomName;
        }
        else
        {
            nameText.text = "Список имен пуст";
        }
    }
}
```

В этом примере `nameText` представляет текстовый объект в пользовательском интерфейсе, отображающий выбранное случайное имя. `playerNameField` - это текстовое поле, в котором игрок вводит свое имя, и кнопки `addButton` и `selectButton`. Функции `AddName` и `SelectRandomName` вызываются при нажатии соответствующих кнопок и выполняют добавление имени в список и выбор случайного имени из списка соответственно.

Этот пример предполагает, что у вас уже есть настроенный пользовательский интерфейс с соответствующими объектами.
var names = new[] {"Ivan", "Alexey", ... };
var random = new Random();
var index = random.Next(0, names.Length);
var randomName = names[index];
Похожие вопросы