|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
27.11.2010, 19:14
|
#1
|
Нуждающийся
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений (для 26 пользователей)
|
Print вешает юнити намертво.
Народ, вы как специалисты не подскажите, вставляю в кусочек когда print и юнити намертво повисает.
Вот кусочек когда:
else { float ratioX = 1.0f/(float)(w2/(w-1)); float ratioY = 1.0f/(float)(w2/(h-1)); for(int y=0;y<w2;y++) { int yy = (int)Mathf.Floor(y*ratioY); int y1 = (int)yy*w; int y2 = (int)(yy+1)*w; int yw = y*w2; for(int x=0;x<w2;x++) { int xx = (int)Mathf.Floor(x*ratioX); print("xx="+xx); Color b1 = mapColors[y1+xx]; Color br = mapColors[y1+xx+1]; Color t1 = mapColors[y2+xx]; Color tr = mapColors[y2+xx+1]; //print("yy="+yy+",y1="+y1+".y2="+y2+",yw="+yw+",xx="+xx); float xLerp = (float)x*ratioX-xx; map[yw+x] = Color.Lerp(Color.Lerp(b1, br, xLerp), Color.Lerp(t1, tr, xLerp), y*ratioY-yy); } } }
в чем может быть загадка природы, ведь без принта проблем нет.
|
(Offline)
|
|
27.11.2010, 19:20
|
#2
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Print вешает юнити намертво.
А какую ошибку выдаёт? (меню сверху - окна - консоль). На каком языке пишеш?
На JS поидее должно работать (если проблема действительно в нём).
На C# нет, надо интовскую переменную перевести в String (xx.ToString() допустим)
|
(Offline)
|
|
27.11.2010, 19:38
|
#3
|
Нуждающийся
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений (для 26 пользователей)
|
Ответ: Print вешает юнити намертво.
Если без принта то выдает:
IndexOutOfRangeException: Array index is out of range.
test1.Awake () (at Assets/test1.cs:85)
А с принтом вешается сразу и только убивать процесс остается.
перевожу с JS на шарп
|
(Offline)
|
|
27.11.2010, 19:43
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Print вешает юнити намертво.
Сколько итераций в циклах? чему равно w2? С учетом того что суммирование строк очень медленная операция да еще внутри вложенных циклов - да еще вывод результата в консоль это очень медленная операция и ты не дожидаешься ее окончания.
UPD: Сколько ждал?)
|
(Offline)
|
|
27.11.2010, 19:51
|
#5
|
Нуждающийся
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений (для 26 пользователей)
|
Ответ: Print вешает юнити намертво.
да вроде не большая, w2=512.
Вот приатачил весь код. Нужно взять текстурку размером 521х512 положить ее в папку resources
|
(Offline)
|
|
27.11.2010, 19:55
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Print вешает юнити намертво.
Как бы совет: попробуй выводить в файл, а не в консоль. Консоль юнити не предназначена для вывода более 100к строк за один раз
|
(Offline)
|
|
27.11.2010, 21:32
|
#7
|
Нуждающийся
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений (для 26 пользователей)
|
Ответ: Print вешает юнити намертво.
ок, попробую.
|
(Offline)
|
|
27.11.2010, 23:04
|
#8
|
Нуждающийся
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений (для 26 пользователей)
|
Ответ: Print вешает юнити намертво.
да, оказывается если подождать 12 минут то все выводится
|
(Offline)
|
|
28.11.2010, 13:10
|
#9
|
|
Ответ: Print вешает юнити намертво.
12 минут на 262 тысячи не очень сложных операций
|
|
|
28.11.2010, 13:16
|
#10
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: Print вешает юнити намертво.
Сообщение от Den
На C# нет, надо интовскую переменную перевести в String (xx.ToString() допустим)
|
к слову, если вы добавляете к строке число, то приводить его к строке вручную не обязательно, компилятор сделает это сам
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.11.2010, 14:59
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Print вешает юнити намертво.
Сообщение от jimon
12 минут на 262 тысячи не очень сложных операций
|
262к операций множественной конкатенации строк (хоть бы использовали StringBuilder для этого), плюс сравнения, т.к. Unity не выводит в консоль повторяющиеся логи. Плюс вывод информации в консоль места, откуда была вызвана функция print (Debug.Log()) для навигации по коду.
Если это не сложные операции, то извиняйте, сделайте быстрее
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
28.11.2010, 17:05
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Print вешает юнити намертво.
2ABTOMAT незачто
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:39.
|