transform.position assign attempt for 'Char3' is not valid

Раздел, посвящённый самому важному - скорости.

transform.position assign attempt for 'Char3' is not valid

Сообщение BlackMamba 09 мар 2011, 14:01

transform.position assign attempt for 'Char3' is not valid. Input position is { NaN, NaN, NaN }.
UnityEngine.Transform:Translate(Single, Single, Single)
Что значит такая ошибка?, консоль указывает на последнюю строку:

Синтаксис:
Используется javascript
MoveSpeedX = (1 - (1 / StepXNo)) * 0.005*CharStat.Speed * (Input.GetAxis("Horizontal"));
MoveSpeedZ = (1 - (1 / StepZNo)) * 0.01*CharStat.Speed * (Input.GetAxis("Vertical"));
        if(MoveSpeedZ < 0)
                MoveSpeedZ = MoveSpeedZ / 2;
        transform.Translate(MoveSpeedX,0,MoveSpeedZ);


в едиторе сцена из платформы, по которой перемещается один объект, управляемый мной (код из его скрипта), запускается, все работает, как надо, но консоль пишет эту ошибку. В сбилдинной сцене вижу только синий экран, и все, может кто-нибудь знает, есть ли связь?
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение seaman 09 мар 2011, 19:54

Могу только сказать, что NaN - это специальное значение "чисел". Получается при делении 0/0, умножении 0*бесконечность, извлечении корня из отрицательного числа и если один из членов выражения уже NaN...
Т.е. тут явно какая-то фигня с числами. Проверяй значения по логам...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение alexz 09 мар 2011, 19:59

Возможно, либо StepXNo, либо StepZNo, либо оба сразу равны нулю.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение seaman 09 мар 2011, 20:17

Тогда было бы не NaN, а Infinity. Тут скорее StepX(Y)No = 1. Тогда в скобках 0. А Speed = бесконечности.
http://www.intuit.ru/department/pl/tincsharp3/2/2.html
Input может выдать бесконечность?
Но это гадания. Нужно дебажить...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение alexz 09 мар 2011, 20:38

seaman писал(а):Тогда было бы не NaN, а Infinity.

Бесконечность, помноженная далее на ноль, даёт NaN.
Последний раз редактировалось alexz 09 мар 2011, 20:38, всего редактировалось 1 раз.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение BlackMamba 09 мар 2011, 20:38

speed - пока константа, временная заглушка из другого скрипта
Input принимает значения от -1 до 1
переменные StepXNo, StepZNo постоянно проверяются на условие, минимальное значение 1 и тогда произведения равны нулю => transform.Translate(0,0,0);
все по дебагам и из других скриптов
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение BlackMamba 10 мар 2011, 13:12

у кого-нибудь есть еще идеи? почему при синтаксисе transform.Translate(MoveSpeedX,0,MoveSpeedZ); оно выдает Input position is { NaN, NaN, NaN }, даже по Y строго ноль - все равно NaN, что-то не понятно :-\
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение seaman 10 мар 2011, 13:48

Translate это по сути сложение двух векторов - старой позиции, и того, что ты указываешь в Translate. Если ты уверен, что то что в Translate не NaN, значит прежняя позиция NaN. Либо то, либо другое...
Попробуй вывести (перед строкой, где transform.Translate) на Дебаг transform.position. Посмотри какая у тебя на тот момент позиция...
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение Paul Siberdt 10 мар 2011, 13:52

тестовую сценку пакуем и в студию :) ... а для начала проверяем, не инты ли, случаем, закрались в рассчеты?
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: transform.position assign attempt for 'Char3' is not valid

Сообщение BlackMamba 10 мар 2011, 17:46

в общем мой косяк: StepXNo, StepZNo ввиду конструкции кода не проверялись на условие сразу после объявления и потому в первый такт Update() были нулевыми.
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва


Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


cron