Страница 2 из 7

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 25 мар 2011, 18:26
IDoNotExist
AlwaysWar писал(а):Скажите, как вы гусеницы сделали? а то у меня не получается сделать по нормальному привязку боней к гусеницам

Лентой делал, скриншоты же есть http://habreffect.ru/bec/1b440cae6/l2_track_line.jpg http://habreffect.ru/827/a43101b68/l2_s ... bone_1.jpg . Мою модель скачивали? Там же все уже смоделено и прикреплено. Лучше расскажите как вы делаете, либо прикрепите свои скриншоты, я скажу что не правильно.

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 25 мар 2011, 18:34
mentors
Отличный урок. Очень понравился.
Только для улучшения читаемости кода, вместо цифр и сносок - проще писать коменты в коде... А то сбивает... Хотя там и так все понятно, но все-же...

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 25 мар 2011, 19:10
IDoNotExist
mentors писал(а):Отличный урок. Очень понравился.
Только для улучшения читаемости кода, вместо цифр и сносок - проще писать коменты в коде... А то сбивает... Хотя там и так все понятно, но все-же...

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

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 25 мар 2011, 19:37
mentors
IDoNotExist писал(а):Пробовал, длинные коменты получаются, читаемость кода становится только хуже.
Этим публикации на хабре и плохи - очень узкая полоса под текст... Коменты должным образом поставить проблематично...
ИМХО: Оформить статейку и перегнать в pdf, выложить на unity3d.ru - нет нарушений правил хабра (хотя давно там не тусуюсь, может и изменились...), и пользователи всегда будут иметь качественное руководство - даже в офлайне...

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 28 мар 2011, 19:14
jabrailus
Всем привет, столкнулся с одной проблемой (немогу никак решить).
У меня при запуске (Play) у машины колеса встают на 90 градусов и крутятся, но в окне редактора расположены правильно.
И ещё у меня машина едет вперёд буквой "S" а назад "W", в общем всё наоборот.
Помогите пожалуйста!

Изображение

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 28 мар 2011, 21:00
mentors
jabrailus писал(а):Всем привет, столкнулся с одной проблемой (немогу никак решить).
У меня при запуске (Play) у машины колеса встают на 90 градусов и крутятся, но в окне редактора расположены правильно.
И ещё у меня машина едет вперёд буквой "S" а назад "W", в общем всё наоборот.
Помогите пожалуйста!

По поводу поворота колес на 90 градусов:
найди строку с комментарием 21 и отредактируй последнее значение (обозначено синим)...
whel.CarWheelTransform.localRotation = Quaternion.Euler(whel.CarWheelRotation, whel.CarWheelCollider.steerAngle, 0f); //21

Насчет переназначения клавиш управления.
Проверь, чтобы совпадало с этим исходником:
Синтаксис:
Используется csharp
    private void CarMove(float accel, float steer)
    {

        foreach (WheelCollider col in WhelsColliderForward)
        {
            col.steerAngle = steer * MaxSteer;
        }

        if (accel == 0)
        {
            foreach (WheelCollider col in WhelsColliderBack)
            {
                col.brakeTorque = MaxBrake;
            }

        }
        else
        {

            foreach (WheelCollider col in WhelsColliderBack)
            {
                col.brakeTorque = 0;
                col.motorTorque = accel * MaxAccel;
            }

        }
 

Если все одинаково - значит ты просто неправильно назначил передние или задние коллайдеры...

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 29 мар 2011, 04:36
jabrailus
Непомогло, менял значения на 0,180,-90 со всеми значениями ведёт себя также...

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 30 мар 2011, 05:02
IDoNotExist
jabrailus писал(а):Непомогло, менял значения на 0,180,-90 со всеми значениями ведёт себя также...

Все правильно изменение последнего аргумента вам ничем не поможет, вы что не видите чтоли что у вас колеса поворачиваются вокруг оси Y а вы меняете значение на оси Z, я же написал в уроке чтобы вы внимательно следили за теми углами поворота колес, тоесть вам надо скорей всего сделать так:
whel.CarWheelTransform.localRotation = Quaternion.Euler(whel.CarWheelRotation, whel.CarWheelCollider.steerAngle+90.0f, 0f); //21
или так:
whel.CarWheelTransform.localRotation = Quaternion.Euler(whel.CarWheelRotation, whel.CarWheelCollider.steerAngle-90.0f, 0f); //21

Другое дело если они вдобавок у вас еще и крутятся вокруг оси Y, тоесть на самом деле они крутятся вокруг оси Х, но видимо вы чтото там намудрили с углами поворота, что теперь у вас ось X смотрит вверх, тогда вам надо сделать так:
whel.CarWheelTransform.localRotation = Quaternion.Euler( whel.CarWheelCollider.steerAngle, whel.CarWheelRotation, 0f); //21
или так:
whel.CarWheelTransform.localRotation = Quaternion.Euler( whel.CarWheelCollider.steerAngle, 0f, whel.CarWheelRotation); //21

не знаю вообщем, экспериментируйте. А по поводу того что автомобиль задом наперед ездит, передавайте отрицательный accel в функцию просто напросто.

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 30 мар 2011, 12:29
jabrailus
спасибо за ответы, начал урок заново =)




Блин снова такая же проблема, только колеса теперь смотрят вперёд как и надо, но крутятся не вперед а в бок=(

когда я пытаюсь запустить проект с этим скриптом:

w.rotation = Mathf.Repeat(w.rotation + delta * w.col.rpm * 360.0f / 60.0f, 360.0f); //20
w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.col.steerAngle, 90.0f, 0f); //21


то Unity выдает:
All compiler errors have to be fixed before you can enter playmod

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 31 мар 2011, 07:09
IDoNotExist
jabrailus писал(а):Блин снова такая же проблема, только колеса теперь смотрят вперёд как и надо, но крутятся не вперед а в бок=(

Если бы они у вас смотрели вперед, таких проблем бы не было, скриншоты чтоли хоть прикрепите где выделено ваше колесо и показано куда оно смотрит, а так же скриншот его Transform'а и Rotation'а

jabrailus писал(а):когда я пытаюсь запустить проект с этим скриптом:

w.rotation = Mathf.Repeat(w.rotation + delta * w.col.rpm * 360.0f / 60.0f, 360.0f); //20
w.wheelTransform.localRotation = Quaternion.Euler(w.rotation, w.col.steerAngle, 90.0f, 0f); //21


то Unity выдает:
All compiler errors have to be fixed before you can enter playmod


Это естественно, функция Quaternion.Euler(); принимает всего 3 аргумента, а вы в неё пытаетесь впихнуть 4. Почаще смотрите на что именно у вас ругается компилятор.

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 31 мар 2011, 09:27
mentors
jabrailus писал(а):Блин снова такая же проблема, только колеса теперь смотрят вперёд как и надо, но крутятся не вперед а в бок=(
[/color]

Сделай несколько скриншотов:
При активном коллайдере.
При активном колесе.
При выделении у тебя должен быть активным инструмент перетаскивания (так чтобы были видны стрелочки за которые ты тягаешь объекты).
Вполне возможно, у тебя косяки именно с ориентацией самих мешей относительно осей координат, а так это будет видно...

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 31 мар 2011, 10:55
jabrailus
Всё сделал скрины.

Изображение

Изображение

Изображение

Изображение

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 31 мар 2011, 12:15
mentors
Блин, не могу открыть ссылки на увеличенное изображение в радикале, но судя по положению колес(верхний скрин), и частично видимой сетки и направляющих (на нижнем)- проблема именно с ориентацией.
Эта проблема и способы ее решения описаны здесь и здесь

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 16 июл 2011, 10:31
OrelImperia
Есть ли у кого работающий проект данного танка, потому как у меня он не совсем работает.

Re: Unity3d Tank Tutorial

СообщениеДобавлено: 16 июл 2011, 15:53
zameran
DELETED