Небольшой вопрос по скрипту для двери.

Программирование на Юнити.

Небольшой вопрос по скрипту для двери.

Сообщение Courvee 16 апр 2010, 11:59

Имеем вот такой скрипт

Код: Выделить всё
   var DS = "close";   
   function Update  () {
      
if (Input.GetKeyDown (KeyCode.E) && (DS == "close")){
      DS = "Moving";
      animation.PlayQueued("open");
      DS = "open";
      print (DS);   
      return;
      
   }
   
   if (Input.GetKeyDown (KeyCode.E) && (DS == "open")){
      DS = "Moving";
      animation.PlayQueued("close");
      DS = "close";
      print (DS);   
      return;
   }
}


по нажатию на кнопку Е, нужная дверь открывается и закрывается... проблема в том что если нажать 5 раз кнопку Е, то анимация играется 5 раз, то-есть встает в очередь. Однако если этого не делать, то при повторном нажатии, текущая анимация прерывается, что совсем плохо. Как решить эту проблему.
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Tolking 16 апр 2010, 15:25

DS = "open";
и
DS = "close";

Должны стоять посли окончания анимации, а не прям после запуска...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Небольшой вопрос по скрипту для двери.

Сообщение gnoblin 16 апр 2010, 15:48

Еще можно закрывать дверь с момента когда была нажата кнопка.

Т.е. если анимация играется и была нажата кнопка Е, делаем speed = -speed;
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 19 апр 2010, 06:01

Speed = -speed получится, при условии проигрывания одной и той же анимации в разные стороны, а у меня 2 разных анимации. Одна просто открытие, вторая, дверь падает, и доходит медленно доводчиком... А Ставить DS = "open" и DS = "close" после анимации, тогда постоянно будет проигрываться анимация открытия. В данный момент проблема решена через Crossfade. В результате повторного нажатия на Е, дверь просто шатается туда-обратно, как-будто её трясут рукой. Такой вариант в принципе устраивает.
Еще вопрос. В данный момент дверь открывается в любой точке карты. Как реализовать момент, что бы действие срабатывало только когда стоишь рядом с дверью. Пробовал через триггер (Box collider), однако не получилось. Не понял как он работает. Или есть другой способ реализовать этот момент. В какую сторону копать?
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Serge 19 апр 2010, 07:16

Верно мыслите, нужно делать через Box collider, еще можно через Raycast, примеров кода у меня нет :) . На FTP есть видеоурок, в котором, показано как реализовать данный механизм.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 19 апр 2010, 12:09

Спасибо! Ушел на ФТП...
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Serge 19 апр 2010, 12:47

Ищите 4-5 файлов в название содержится "Cinema". В них процесс создания небольшой демки с самого начала, моделирование, текстурирование, анимация и т.д. Один из уроков посвящен анимации двери, может это то, что Вам нужно. Сейчас точнее сказать не могу.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Serge 19 апр 2010, 12:57

Вам повезло, я нашел их названия:

2.1. Cinema4D Animation & Interaction. Previous Project & Cinema 4D GUI
2.2. Cinema4D Animation & Interaction. Extrusion & Boolean Cut
2.3. Cinema4D Animation & Interaction. Modelling & Materials
2.4. Cinema4D Animation & Interaction. Animation & Unity Import Settings
2.5. Cinema4D Animation & Interaction. Collision Detection & Basic Scripting
2.6. Cinema4D Animation & Interaction. Point Lights, Layers & Culling Masks

2.4. Cinema4D Animation & Interaction. Animation & Unity Import Settings – здесь про дверь. :)
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 20 апр 2010, 06:02

Обошел весь ФТП, таких файлов не найдено.
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Serge 20 апр 2010, 07:06

Тоже не нашел. Либо ждать до вечера, когда смогу выложить, либо поискать Utube. Названия я Вам точные дал.
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение warr11r 20 апр 2010, 12:13

Мудрость - это когда начинаешь понимать, что все время занимаешься какой-то х...ней.
Изображение
Аватара пользователя
warr11r
UNITрон
 
Сообщения: 310
Зарегистрирован: 06 июн 2009, 03:21
Откуда: Украина, Ровно
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 20 апр 2010, 13:19

Огромное спасибо за ссылки! Очень помогли!
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 21 апр 2010, 06:40

Еще вопрос. Необходимо что бы при входе в триггер появлялась графическая иконка в центре экрана. Однако GUI элемент нельзя положить в функцию OnTriggerStay. Как еще можно вывести нужное изображение на экран.

Вот кусочек скрипта, просто выводящий эту иконку. Постоянно. Нужно как то это положить в триггер. Подскажите. Сам не знаю как.

Код: Выделить всё
function OnGUI() {    GUI.Label (Rect (Screen.width*0.5-OpenDoorIcon.width*0.5 , Screen.height-100 , OpenDoorIcon.width, OpenDoorIcon.height), OpenDoorIcon); }
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Serge 21 апр 2010, 07:10

При колизии: ВыводитьИконку = ДА
При выходе из коллизии (или другие условия): ВыводитьИконку = НЕТ

В OnGUI() помещаем
Если ВыводитьИконку Тогда
рисуем чего хотим

Код специально приводить не стал, чтобы оставить почву для творчества. :)
О, сколько нам открытий чудных Готовят просвещенья дух И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель.
Аватара пользователя
Serge
UNIверсал
 
Сообщения: 476
Зарегистрирован: 20 мар 2009, 15:53
Откуда: Сибирь г. Омск
  • Сайт
  • ICQ

Re: Небольшой вопрос по скрипту для двери.

Сообщение Courvee 21 апр 2010, 07:15

Да мне код то и не нужен :) Достаточно твоей подсказки! Код я и сам соображу :) Спасибо!
Моя специализация: 3D. Моделирую, текстурирую, анимирую.
Аватара пользователя
Courvee
UNIт
 
Сообщения: 91
Зарегистрирован: 19 фев 2010, 08:11
Откуда: Россия, г. Оренбург
  • Сайт
  • ICQ

След.

Вернуться в Скрипты

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

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