проблема со скриптом

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

проблема со скриптом

Сообщение GIGABAR 11 сен 2011, 11:01

ЗДравствуйте! сразу говорю глубокий новичек, пытаюсь сделать скрипт открывания двери, анимацией неохота хочется скриптом, так как нужно будет поставить на множество объектов разного размера и анимацию делать на каждый объект мучительно будет, вот с чего начал!- - - -
стащил вот этот скрипт:
Синтаксис:
Используется javascript
var ox:float;
var oy:float;
var oz:float;
var mx:float;
var sx:float;

function Start () {
sx=transform.position.x;
mx=Random.Range (-0.5,0.5);
}

function Update () {

if (transform.position.x > sx +10){mx=-mx;}
if (transform.position.x < sx -10){mx=-mx;}
ox=transform.position.x+mx;
oy=transform.position.y;
oz=transform.position.z;


transform.position = Vector3(ox,oy,oz);

}
 


и вставил в него что бы при нажатий буквы f срабатывало движение по "x" вперед и при еще одном нажатий назад, ну как двери железные в играх открываются же, sx - как понял расстояние, mx - скорость по "x", короче получилось вот это:
Синтаксис:
Используется javascript
var ox:float;
var oy:float;
var oz:float;
var mx:float;
var sx:float;

function Start () {
sx=transform.position.x;
mx=Random.Range (-0.5,0.5);
}

function Update () {
if (Input.GetButton ("f"))
if (transform.position.x > sx +1){mx=-mx;}
 else
if (transform.position.x < sx -1){mx=-mx;}
ox=transform.position.x+mx;
oy=transform.position.y;
oz=transform.position.z;
transform.position = Vector3(ox,oy,oz);

}
 

но оно не работает. . . . . .пытался убирать if перед трансформ позитион толку никакого( почему не работает? плз помогите, я глубочайший новичок прошу сильно не пинать, буду очень благодарен если поможете! ^:)^
_https://www.youtube.com/watch?v=Pjl54PuULQw - дрифт гоночки поделываю:))
Аватара пользователя
GIGABAR
UNITрон
 
Сообщения: 266
Зарегистрирован: 11 май 2011, 16:05
Откуда: Алматы

Re: проблема со скриптом

Сообщение AndreyMust19 11 сен 2011, 12:37

У вас не используется время - ваша дверь откроется мгновенно.

Если дверь обладает физической моделью, функцию Update надо назвать FixedUpdate. Тогда время, прошедшее с предыдущего вызова FixedUpdate будет находиться в Time.fixedTime. Умножаете это значение на число, соотв-ее скорости открывания двери в м/с и потом прибавляете/вычитаете из transform.position.x. Но тогда дверь всгда будет двигаться по оси X, вне зависимости от ее ориентации. Чтобы ее учитывать, берите вектор transform.right (направление направо) и передвигайте дверь по этому вектору.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: проблема со скриптом

Сообщение GIGABAR 11 сен 2011, 15:30

может поможете пожалуйста этот скрипт заставить работать? а то я мозги расплавил после первого вашего предложение, так как я новичок мой мозг на такое не рассчитан . . . . . о_О вроде же дверь мгновенно не откроется я написал что sx это скорость а mx расстояние, настроив их я получу желаемую скорость открытия, скрипт хорошо функционирует, дверь движется на 1 как бы сказать юнит туда и обратно, с правильной скоростью безостановочно, просто мне надо его останавливать, нажал "f" дверь открылась, я прошел, дверь закрылась, ну потом доделаю тригер на автозакрывание, но щас не об этом, просто хочу сделать что бы дверь нажатий "f" открывалась и продвинулась по mx на 0.5 остальное сам уже, но блин в чем проблема наработает йопт. . . . . .
_https://www.youtube.com/watch?v=Pjl54PuULQw - дрифт гоночки поделываю:))
Аватара пользователя
GIGABAR
UNITрон
 
Сообщения: 266
Зарегистрирован: 11 май 2011, 16:05
Откуда: Алматы


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

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

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