Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 27.11.2010, 19:14   #1
Slayer
Нуждающийся
 
Регистрация: 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(b1brxLerp), Color.Lerp(t1trxLerp), y*ratioY-yy);
                    }
               }
            } 
в чем может быть загадка природы, ведь без принта проблем нет.
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 19:20   #2
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Print вешает юнити намертво.

А какую ошибку выдаёт? (меню сверху - окна - консоль). На каком языке пишеш?
На JS поидее должно работать (если проблема действительно в нём).
На C# нет, надо интовскую переменную перевести в String (xx.ToString() допустим)
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 19:38   #3
Slayer
Нуждающийся
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Print вешает юнити намертво.

Сколько итераций в циклах? чему равно w2? С учетом того что суммирование строк очень медленная операция да еще внутри вложенных циклов - да еще вывод результата в консоль это очень медленная операция и ты не дожидаешься ее окончания.
UPD: Сколько ждал?)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 19:51   #5
Slayer
Нуждающийся
 
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений
(для 26 пользователей)
Ответ: Print вешает юнити намертво.

да вроде не большая, w2=512.
Вот приатачил весь код. Нужно взять текстурку размером 521х512 положить ее в папку resources
Вложения
Тип файла: zip test1.zip (1.5 Кб, 464 просмотров)
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 19:55   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Print вешает юнити намертво.

Как бы совет: попробуй выводить в файл, а не в консоль. Консоль юнити не предназначена для вывода более 100к строк за один раз
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 21:32   #7
Slayer
Нуждающийся
 
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений
(для 26 пользователей)
Ответ: Print вешает юнити намертво.

ок, попробую.
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 23:04   #8
Slayer
Нуждающийся
 
Регистрация: 23.09.2010
Сообщений: 54
Написано 8 полезных сообщений
(для 26 пользователей)
Ответ: Print вешает юнити намертво.

да, оказывается если подождать 12 минут то все выводится
(Offline)
 
Ответить с цитированием
Старый 28.11.2010, 13:10   #9
jimon
 
Сообщений: n/a
Ответ: Print вешает юнити намертво.

12 минут на 262 тысячи не очень сложных операций
 
Ответить с цитированием
Старый 28.11.2010, 13:16   #10
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Print вешает юнити намертво.

Сообщение от Den Посмотреть сообщение
На C# нет, надо интовскую переменную перевести в String (xx.ToString() допустим)
к слову, если вы добавляете к строке число, то приводить его к строке вручную не обязательно, компилятор сделает это сам
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
den (28.11.2010)
Старый 28.11.2010, 14:59   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Print вешает юнити намертво.

Сообщение от jimon Посмотреть сообщение
12 минут на 262 тысячи не очень сложных операций
262к операций множественной конкатенации строк (хоть бы использовали StringBuilder для этого), плюс сравнения, т.к. Unity не выводит в консоль повторяющиеся логи. Плюс вывод информации в консоль места, откуда была вызвана функция print (Debug.Log()) для навигации по коду.
Если это не сложные операции, то извиняйте, сделайте быстрее
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
ABTOMAT (28.11.2010), IGR (28.11.2010)
Старый 28.11.2010, 17:05   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Print вешает юнити намертво.

2ABTOMAT незачто
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:25.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com