Пятница, 15 Ноября 2024, 07:26

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • allodsДата: Понедельник, 20 Января 2014, 18:44 | Сообщение # 5341
    почти ветеран
    Сейчас нет на сайте
    Вопрос

    Делаю

    var scriptControl:Component;

    в старте

    scriptControl=GetComponent(control);

    а потом обращаюсь к компоненту

    scriptControl.speed

    Все работате и все такое но когда попытался скомпилировать под андроид то везде где я так делал получаю ошибку

    Assets/gamelvl.js(20,26): BCE0019: 'hp' is not a member of 'UnityEngine.Component'. почему?
    ChazДата: Понедельник, 20 Января 2014, 18:50 | Сообщение # 5342
    частый гость
    Сейчас нет на сайте
    не работает та коллизия

    Добавлено (20.01.2014, 18:50)
    ---------------------------------------------

    Цитата Ranger ()
    по первому способу вопросов нет??
    2. создать чилда к платформе с бокс коллайдером внутри бокс коллайдера платформы. ригидбоди на чилда не не вешать. платформа будет иметь 2 коллайдера один внутри другого. в случае движения вверх появляется коллизия с коллайдером чилда и физика персонажа будет отрабатываться на нем. правда могут быть артефакты, но подбором параметров эти проблемы можно решить

    btw: каким образом двигаете платформу?

    с первым понятно, а так что первое, что второе - какое-то извращение, двигаю с помощью изменения Y-координаты платформы
    RangerДата: Понедельник, 20 Января 2014, 18:58 | Сообщение # 5343
    почти ветеран
    Сейчас нет на сайте
    Цитата Chaz ()
    с первым понятно, а так что первое, что второе - какое-то извращение, двигаю с помощью изменения Y-координаты платформы

    вот как раз 1е не извращение, а честная физика.
    понятно что меняете координату... меняете как?


    ChazДата: Понедельник, 20 Января 2014, 19:04 | Сообщение # 5344
    частый гость
    Сейчас нет на сайте
    Ranger, ну значит создаю две переменных типа Vector3. Первую называю bottom, а вторую - top. Первой присваиваю текущую позицию платформы, второй переменной присваиваю первую и добавляю к координате Y число 10. А потом пишу
    transform.position = Vector3.Lerp(bottom, top, tmp); где tmp это переменная, которая плавно меняется от 0 до 1
    мне ща VS лень открывать, чтобы код показать хД
    Так вот, таким образом я могу точно указать откуда и куда должна двигатся платформа и за какое время, а с физикой и форсами я бы пол часа подбирал нужные значения, или нет?
    lentinantДата: Понедельник, 20 Января 2014, 19:14 | Сообщение # 5345
    ленивый программист
    Сейчас нет на сайте
    Цитата allods ()
    Все работате и все такое но когда попытался скомпилировать под андроид то везде где я так делал получаю ошибку

    Assets/gamelvl.js(20,26): BCE0019: 'hp' is not a member of 'UnityEngine.Component'. почему?

    Переменную hp ты в каком классе создавал?


    Когда-то тут будут ссылки на крутые проекты. Или нет.

    Сообщение отредактировал lentinant - Понедельник, 20 Января 2014, 19:15
    RangerДата: Понедельник, 20 Января 2014, 19:36 | Сообщение # 5346
    почти ветеран
    Сейчас нет на сайте
    Цитата Chaz ()
    я бы пол часа подбирал нужные значения, или нет?

    нет.
    1.1 в апдейт достаточно прописать прикладывание силы, пока платформа не достигнет нужной скорости
    1.2 трение на платформу установить большим , чтобы после прекращения воздействия силы, она останавливалась
    2. transform.position нельзя использовать при работе с ригидбоди, иначе движок ломается и глючит. для корректной работы использовать нужно rigidbody.moveposition


    seamanДата: Понедельник, 20 Января 2014, 19:43 | Сообщение # 5347
    старожил
    Сейчас нет на сайте
    Цитата
    'hp' is not a member of 'UnityEngine.Component'. почему?

    Потому что нефиг на JS писать. На шарпе Вы сами давно все поняли бы. Ну нет в юнитевском классе Component Вашей переменной hp. Откуда ей там взяться?
    Что нужно сделать? Привести тип от Component к Вашему типу, который содержит этот hp.
    Или, если использовать идеологию JS - не писать такой лажи:
    var scriptControl:Component;
    Потому как scriptControl без вариантов не компонент, а производное от него. Тогда Юнити сам приведет тип к нужному.
    ChazДата: Понедельник, 20 Января 2014, 20:01 | Сообщение # 5348
    частый гость
    Сейчас нет на сайте
    Ranger, так я вообще риджидБоди не использую, нафига оно мне, если я могу просто изменять координату-Y

    Добавлено (20.01.2014, 19:58)
    ---------------------------------------------
    Блииин, слушайте, все-равно есть проблема. Ну я ж остановился на триггерах, так вот, если прыгать по платформе во время ее движения вверх, то персонаж проваливается сквозь =(

    Добавлено (20.01.2014, 20:01)
    ---------------------------------------------
    ой, оно даже когда вниз опускается, то тоже иногда проваливается

    allodsДата: Понедельник, 20 Января 2014, 20:09 | Сообщение # 5349
    почти ветеран
    Сейчас нет на сайте
    А ты из триггера не выпрыгиваешь ? он большой твой триггер?

    Цитата seaman ()
    seaman


    Я дописываю свой 2й проект на JS и перейду на C#

    Спасибо за совет
    LaushДата: Понедельник, 20 Января 2014, 20:59 | Сообщение # 5350
    почти ветеран
    Сейчас нет на сайте
    Цитата Astralangel ()
    Можно попробовать увеличить массу, а вообще, разве настоящий груз в багажнике не "дрыгается" при перемещении авто?

    Нет, не помогло, ну он дергается не реалистично(видно куб бывает сквозь задней части багажника машины)


    [PC/Android/iOS/WEB] 30 Days to survive
    [PC] Dead Defense
    [PC] Саламандра - история пирата
    RangerДата: Вторник, 21 Января 2014, 13:47 | Сообщение # 5351
    почти ветеран
    Сейчас нет на сайте
    Цитата Chaz ()
    Блииин, слушайте, все-равно есть проблема. Ну я ж остановился на триггерах, так вот, если прыгать по платформе во время ее движения вверх, то персонаж проваливается сквозь =(

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

    Вариант с коллайдером:


    ChazДата: Вторник, 21 Января 2014, 15:33 | Сообщение # 5352
    частый гость
    Сейчас нет на сайте
    Ranger, эх, не помогло =( Оно то проваливается то не проваливается, такое чувство, что проверка на твердость под ногами медленнее, чем движение персонажа
    вот я вам видюшку записал
    ВИДЮШКА
    RangerДата: Вторник, 21 Января 2014, 15:44 | Сообщение # 5353
    почти ветеран
    Сейчас нет на сайте
    Цитата Chaz ()
    проверка на твердость под ногами медленнее, чем движение персонажа
    вот я вам видюшку записал

    Коллизия не срабатывает потому что смена координат (руками) и физика отрабатывают не одновременно.
    к тому моменту, когда начинает работать физика, платформа уже перекрывает персонажа.
    прийдется таки тебе делать ригидбоди на платформу.
    Зачем код стер?
    там делай то же самое, только меняй не transform.position а используй (как уже писал) Rigidbody.MovePosition. тогда физика корректно посчитается. единственная проблема это то, что гравитация персонажа будет опускать платформу.. с ходу решение не подскажу.
    может есть какой велосипед, но я его не вижу.

    ==============update=========
    столкнулся с похожей проблемой.
    Решение в следующем: платформа является чилдом к объекту лежащему на земле. на родителе риджидбоду. на чилде только коллайдер. позицию платформы менять через localposition в том же кадре в update пишешь для родителя AddRelativeForce (Vector3.up *.001f); это заставит отработать физику на платформе.




    Сообщение отредактировал Ranger - Вторник, 21 Января 2014, 16:08
    ChazДата: Вторник, 21 Января 2014, 16:31 | Сообщение # 5354
    частый гость
    Сейчас нет на сайте
    Ranger, а плеер как должен двигатся при этом?
    RangerДата: Вторник, 21 Января 2014, 16:37 | Сообщение # 5355
    почти ветеран
    Сейчас нет на сайте
    Цитата Chaz ()
    Ranger, а плеер как должен двигатся при этом?

    на плеере это никак не должно отразиться, если правильно выставлены трения и массы игрока и лифта


    ChazДата: Вторник, 21 Января 2014, 16:41 | Сообщение # 5356
    частый гость
    Сейчас нет на сайте
    кароч ну в пень эту физику, она какая-то костыльная, к тому же изначально двигал персонажа CharacterController'ом и оно нормально работает, а теперь я должен долбится в попу с этой физикой, чтобы заставить персонажа просто ходить. Дырку в платформе залепил более толстым триггером, теперь прыгаю как хочу и не проваливаюсь, почти.

    Сообщение отредактировал Chaz - Вторник, 21 Января 2014, 17:11
    IzaronДата: Вторник, 21 Января 2014, 17:04 | Сообщение # 5357
    Rammstein forever
    Сейчас нет на сайте
    Не матюкайся, за это бан дают
    ChazДата: Вторник, 21 Января 2014, 17:11 | Сообщение # 5358
    частый гость
    Сейчас нет на сайте
    Izaron, я уже отредактировал сообщение
    set16Дата: Вторник, 21 Января 2014, 17:38 | Сообщение # 5359
    постоянный участник
    Сейчас нет на сайте
    Позиция площадки меняется position?

    =>The darkness of distant lands [3D]<=
    ChazДата: Вторник, 21 Января 2014, 17:39 | Сообщение # 5360
    частый гость
    Сейчас нет на сайте
    set16, да я уже по всякому делал, через rigidbody и через localPosition
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг