transform.position меняется [РЕШЕНО]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

transform.position меняется [РЕШЕНО]

Сообщение seaman 13 сен 2011, 17:14

Возможно где-то просто туплю, поэтому в "Почемучку".
Есть кусок кода:
Синтаксис:
Используется csharp
    private void _Move()
    {
        pos2 = transform.position;
        if((transform.position - _desirePosition).magnitude > 0.01f)
        {
            pos3 = transform.position;
            transform.position = Vector3.SmoothDamp(transform.position, _desirePosition, ref _velocityMove, _timeFall);
            pos0 = transform.position;
            Position = _WorldToCell(transform.position);
        }
        else
        {
            Field.OnChangePosition(this);
            Position = DesirePosition;
            Moving = false;
        }
    }

pos2, pos3, pos0 больше нигде не используются
Вижу в инспекторе:
Изображение
WTF!!! С чего бы это координаты не совпадают!
Последний раз редактировалось seaman 13 сен 2011, 18:03, всего редактировалось 1 раз.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: transform.position меняется

Сообщение ArtUni3d 13 сен 2011, 17:42

А какой смысл кода? Если pos3 и так равно pos2, то и используйте переменную pos2.
Аватара пользователя
ArtUni3d
UNITрон
 
Сообщения: 249
Зарегистрирован: 27 апр 2011, 22:12

Re: transform.position меняется

Сообщение DbIMok 13 сен 2011, 17:44

pos2 меняется каждый вызов, а pos3 нет. с момента изменения pos3 положение объекта и pos2 изменились. Debug.Break для проверки отсутствия чудес
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: transform.position меняется

Сообщение seaman 13 сен 2011, 17:53

1. Смысл кода в отладке. Были глюки с позициями шариков. Стал вставлять Дебаги. Увидел это. Возможно ошибку свою найду и это далее не понадобится, но данный факт меня сильно смутил.
2. Debug.Break восстановил нормальное поведение. Но я пока не осознал логики :-\ :( . Видите ли позиция меняется только внутри if. Получается что она достаточно сильно меняется за один вызов этого метода, что мне совсем не подходит. Буду думать.
PS: вся фишка была в расчете _timeFall Он был всегда = 0. Поэтому все смещение происходило за один кадр - за один вызов метода.

Так что - решено. Все же ступил :(
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Почемучка

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

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