Не могу найти решить проблему в TextMesh

244
29 мая 2017, 22:42
for (int i = 0; i < 10; i++) {
            if ((curPage * 10 + i) < objSpawner.maxObjects) {
                if (objectDelivery [i] == false)
                    go.GetComponent<TextMesh> ().text += 
                    collorObjectText [curPage * 10 + i] +
                    kindOfObjectText [curPage * 10 + i] +
                    propObjectText [curPage * 10 + i] +
                    stickerObjectText [curPage * 10 + i] +
                    massObjectText [curPage * 10 + i] +
                    destinationText [curPage * 10 + i] + "\n";
                else if (objectDelivery [i] == true)
                    go.GetComponent<TextMesh> ().text += 
                    "<color=#00000055>" + collorObjectText [curPage * 10 + i] + "</color>" +
                    "<color=#00000055>" + kindOfObjectText [curPage * 10 + i] + "</color>" +
                    "<color=#00000055>" + propObjectText [curPage * 10 + i] + "</color>" +
                    "<color=#00000055>" + stickerObjectText [curPage * 10 + i] + "</color>" +
                    "<color=#00000055>" + massObjectText [curPage * 10 + i] + "</color>" +
                    "<color=#00000055>" + destinationText [curPage * 10 + i] + "</color>" + "\n";
}
}

Пытаюсь сделать журнал с записями, по 10 строк на одной странице. Если objectDelivery [i] == false, то цвет строки обычный, если true, то становится прозрачным.

curPage номер страницы, по умолчанию 0, когда тыкаю стрелку вправо (она есть и работает), то curPage становится 1, ну и так далее. Все это хорошо работает и показывает все, что нужно (в начале первые 10 строк, на следующей странице вторые 10 строк и так далее), но! Проблема следующая: если objectDelivery [2] == true (2 для примера, вообще любой индекс МЕНЬШЕ 10), то прозрачность меняется у объектов с индексами 2, 12, 22 и так далее. Если objectDelivery [11] == true (больше или равен 10), то прозрачность не меняется совсем. Намудрил я, конечно, знатно, но если не использовать curPage, то он весь список выводит на экран, что очень плохо. Собственно, проблема >=10 от того, что i указана до 10, <10 наверно имеет те же корни, но как реализовать прозрачность строки для конкретного объекта, придумать не могу

Обновление:

for (int i = 0; i < 10; i++) { // для того, чтобы на странице отображались ТОЛЬКО 10 строк (без этого отображаются все строки
                if ((curPage * 10 + i) < objSpawner.maxObjects) { // проверяет, чтобы индекс не вышел за пределы maxObjects (и задает кол-во страниц
                    if (objectDelivery [i] == false)
                        go.GetComponent<TextMesh> ().text += 
                        collorObjectText [curPage * 10 + i] + "\n";
                    else if (objectDelivery [i] == true)
                        go.GetComponent<TextMesh> ().text += 
                        "<color=#00000055>" + collorObjectText [curPage * 10 + i] + "</color>" +"\n";
    }
    }

Вот немного сократил. Прозрачной я хочу сделать только одну строку, которая соответствует определенному индексу (от 0 до maxObjects), при этом первые 10 строк расположены на первой странице, вторые на второй и так далее. Вот эта часть говорит, на какой странице будет строка, соответствующая определеному индексу [curPage * 10 + i]

Answer 1

Попробуйте вот так (я в двух местах заменил i на curPage * 10 + i):

for (int i = 0; i < 10; i++) { // для того, чтобы на странице отображались ТОЛЬКО 10 строк (без этого отображаются все строки
                if ((curPage * 10 + i) < objSpawner.maxObjects) { // проверяет, чтобы индекс не вышел за пределы maxObjects (и задает кол-во страниц
                    if (objectDelivery [curPage * 10 + i] == false)
                        go.GetComponent<TextMesh> ().text += 
                        collorObjectText [curPage * 10 + i] + "\n";
                    else if (objectDelivery [curPage * 10 + i] == true)
                        go.GetComponent<TextMesh> ().text += 
                        "<color=#00000055>" + collorObjectText [curPage * 10 + i] + "</color>" +"\n";
    }
    }
READ ALSO
Запуск WinForm с параметром

Запуск WinForm с параметром

Всем привет, написал приложение на WinForm, в котором есть пункт запуск с параметром, в приложении обработал это так

279
Как удалит символ ударения с строки, сохранив другие символы?

Как удалит символ ударения с строки, сохранив другие символы?

Код удаляет ударения, но также заменяет букву "й" на букву "и"

258
C# скачивание файлов без прямой ссылки awensonium

C# скачивание файлов без прямой ссылки awensonium

ссылка на сайт Сверху карты под header есть кнопка при ее нажатие всплывает окно с выбором файла через select box мне нужно программно выбрать файл...

222