Написал код, который должен заполнять стринговый массив с клавиатуры через поле ввода.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Game : MonoBehaviour
{
public GameObject Question; // Сцена с полем ввода
public GameObject Answer; // Сцена с введённым текстом
public InputField PoleVvoda; // Поле ввода
public Text ShowText; // Выводимый текст
public string[] QuestionsArray = new string[20]; // Стринговый массив
public void Confirm ()
{
Question.SetActive(false); // Выключает сцену с полем ввода
Answer.SetActive(true); // Включает сцену с введённым текстом
ShowText.text = PoleVvoda.text + ("?"); // Добавляет к введённому тексту знак вопроса
for (int i = 0; i < 20; i++) // Массив состоящий из 20 элементов
{
QuestionsArray[i] = ShowText.text; // Должен присваивать каждому элементу свое слово
}
PoleVvoda.text = string.Empty; // Очистка строки ввода
}
Запускаю приложение, ввожу слово, а он присваивает введённое слово всем элементам.
Когда присваиваю через код, все отображается нормально, а через клавиатуру - никак.
Как сделать так, чтобы было поочередное присваивание? Если, что не бейте D:
Вы берете одну строку и циклом вставляете ее во все элементы массива, в этом и проблема. Я полагаю вам нужно что то такое. После каждого нажатия происходит одна вставка в массив, _curIndexQuestionsArray это текущий индекс для массива. Я предусмотрел элементарную защиту от переполнения _curIndexQuestionsArray, через его обнуление. Вам возможно это нужно реализовать как то по другому.
private int _curIndexQuestionsArray;
public string[] QuestionsArray = new string[20]; // Стринговый массив
public void Confirm ()
{
Question.SetActive(false); // Выключает сцену с полем ввода
Answer.SetActive(true); // Включает сцену с введённым текстом
ShowText.text = PoleVvoda.text + ("?"); // Добавляет к введённому тексту знак вопроса
if(_curIndexQuestionsArray >= QuestionsArray.Length)
_curIndexQuestionsArray = 0;
QuestionsArray[_curIndexQuestionsArray] = ShowText.text;
_curIndexQuestionsArray++;
PoleVvoda.text = string.Empty; // Очистка строки ввода
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В VK Api возвращается date в странном виде, в виде числа и непонятно как его расшифровывать
Подскажите, а является ли нормальной практикой плодить контексты using при работе с Enitity Framework или правильнее передавать объекты сущностей...