Unity C#: проблема со списком, который не распознается в функции [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Unity C#: проблема со списком, который не распознается в функции [закрыто]

Сообщение Anonymous »

Проблема:
Я разрабатываю словесную игру в Unity, используя C#. У меня есть список SelectedLetters, который используется в моей функции удаления слов. Однако я столкнулся с проблемой, когда буквы не удаляются или не возвращаются правильно в сетку букв (список не распознает и не возвращает 0in .Count. но я вижу в инспекторе единства, что в списке есть элементы).< /p>
Определение игры:
игра основана на механике слов в играх «BookWorm».
Сетка слов представляет собой GridLayout с двумя строками, на которые игрок нажимает письмо в сетке букв кнопка с текстом (на основе текста сетки букв) создается в сетке слов, и изображение буквы исчезает из сетки букв. и когда игрок нажимает кнопку в сетке слов, слово удаляется из сетки слов, а исчезающая буква появляется снова.
Что я пробовал:
Я пробовал реализована логика удаления слов с использованием цикла удаления букв из списка SelectedLetters. Удаленные буквы должны вернуться на исходные позиции в сетке букв, но, похоже, во время этого процесса что-то идет не так.
// я создаю экземпляр списка вне функций (уровень класса).
[SerializeField] private List SelectedLetters = new List();

//Функция удаления слов
private void WordRemoval(GameObject clickedButton, int clickedIndex)
{
int Count = GetCount(); //return the count of how many objects are in WordGrid.

// Handle when clicking in the Upper Row
if (clickedButton.transform.parent == WordGrid.GetChild(0).transform && clickedIndex < MaxLettersPerRow)
{
for (int i = WordGrid.GetChild(1).childCount - 1; i >= 0; i--)
{
Transform child = WordGrid.GetChild(1).GetChild(i);
Destroy(child.gameObject);
}

for (int i = WordGrid.GetChild(0).childCount - 1; i >= clickedIndex; i--)
{
Transform child = WordGrid.GetChild(0).GetChild(i);
Destroy(child.gameObject);

if (i < Count)
{
ReturnButtonToLetterGrid(i);
}
else
{
Debug.LogWarning("Index out of range for SelectedLettersList: " + i);
}
}
}

//в этой функции я добавляю в список
public void OnLetterButtonClick(Button button)
{
if (!SelectedLetters.Contains(button))
{
SelectedLetters.Add(button);

string letter = button.GetComponentInChildren().text;
AddLetterToWordGrid(letter);

button.GetComponent().enabled = false;
button.GetComponentInChildren().enabled = false;
CheckingWordGrid();
}
else
{
Debug.LogWarning("Button is already in SelectedLetters: " + button.GetComponentInChildren().text);
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... a-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»