Страница 1 из 1

Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 19 май 2011, 16:12
Kislorod
В общем вопрос первый такой:
Есть труба, которая как бы тоннель. Он кривой, извивается и т.д.

Есть шарик, к которому я делаю addforce и он катится по этой трубе.... пока сила направлена вперед. А перед у неё - это по мировой оси Z. Но тоннель извивается и в определенный момет ось Z уже не вперед, а в стенку. Соответственно надо бы повернуть вектор силы.... но как узнать куда? Т.е. не могу понять как мне в каждый момент времени знать, где находится перед у тоннеля и соответственно корректировать направление движения моего шарика?


Вопрос номер два - камера. КАк сделать так, что бы летящая за шариком камера не вылетала за стенки тоннеля? Вешать коллайдеры не помогает, она привязана скриптом SmoothloockAt.

Надеюсь вы мне поможете! Спасибо!

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 19 май 2011, 19:26
Black_hole
Задавать направление шарику нужно по локальной системе координат.

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 19 май 2011, 19:55
Kislorod
Эээээ так он же катится!

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 19 май 2011, 20:46
burlak
Труба длинная? Если ДА, стоит задавать ее просто кривой или ломаной, и по мере продвижения шарика вдоль данной кривой, кодом добавлять новые сегменты и удалять пройденные.
Если же труба уже смоделена полностью, можно посчитать ломаную, которая и будет указывать направление трубы в любой точке.
Если еще и ресурсов достаточно, можно просто на каждый сегмент трубы разместить коллайдер (триггер), который своей ориентацией покажет направление. Этот метод кстати можно совместить с первым предложением по динамическому созданию сегментов вдоль кривой - тогда и ресурсы не будут отжираться и все делается очень просто.

Чтобы камера не вылезала за коллайдер трубы, надо на нее повесить CharacterController и управлять перемещениями через его методы.

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 19 май 2011, 21:51
yura415
burlak писал(а):Труба длинная? Если ДА, стоит задавать ее просто кривой или ломаной, и по мере продвижения шарика вдоль данной кривой, кодом добавлять новые сегменты и удалять пройденные.
Если же труба уже смоделена полностью, можно посчитать ломаную, которая и будет указывать направление трубы в любой точке.
Если еще и ресурсов достаточно, можно просто на каждый сегмент трубы разместить коллайдер (триггер), который своей ориентацией покажет направление. Этот метод кстати можно совместить с первым предложением по динамическому созданию сегментов вдоль кривой - тогда и ресурсы не будут отжираться и все делается очень просто.

Чтобы камера не вылезала за коллайдер трубы, надо на нее повесить CharacterController и управлять перемещениями через его методы.

есть и другие методы колизии камеры. например http://forum.unity3d.com/threads/31103- ... oth-Follow

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 20 май 2011, 11:59
Kislorod
Труба длинная? Если ДА, стоит задавать ее просто кривой

А как в юнити создать кривую? Я могу в максе создать кривую безье, которую можно использовать как путь, но как её закинуть в юнити и как с ней работать?

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 20 май 2011, 12:12
Order
http://unity3d.ru/distribution/viewtopic.php?f=18&t=4169&p=34956&hilit=%D0%B1%D0%B5%D0%B7%D1%8C%D0%B5#p34956

Выкладывал свои линии Безье. Есть еще плагин Нео Antares addon.

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 20 май 2011, 12:16
burlak
Как импортнуть кривую - не знаю... Можно мешем ее сделать, но как я понимаю Юнька импорирует только плоскости, поэтому потребуется разбираться с ними.
Если тунель будет состоять из прямых сегментов, можно просто задать путь ломаной - просто последовательность пустых GameObject + OnDrawGizmo сделать чтобы линии рисовались от предыдущего к последующему.

Если же нужна безье, придется изголяться - вот тут например есть реализация http://unity3d.ru/distribution/viewtopi ... %B5#p34940

Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!

СообщениеДобавлено: 20 май 2011, 15:04
Neodrop
В Antares Project кривые есть. Ну обидно даже, кокгда приличные люди дают такие неприличные сырые ссылки. Не путать с Universe
viewtopic.php?f=12&t=1162