Привет! Можно я буду задавать тут глупые вопросы? Спасибо!
Добавлено:
19 май 2011, 16:12
Kislorod
В общем вопрос первый такой:
Есть труба, которая как бы тоннель. Он кривой, извивается и т.д.
Есть шарик, к которому я делаю addforce и он катится по этой трубе.... пока сила направлена вперед. А перед у неё - это по мировой оси Z. Но тоннель извивается и в определенный момет ось Z уже не вперед, а в стенку. Соответственно надо бы повернуть вектор силы.... но как узнать куда? Т.е. не могу понять как мне в каждый момент времени знать, где находится перед у тоннеля и соответственно корректировать направление движения моего шарика?
Вопрос номер два - камера. КАк сделать так, что бы летящая за шариком камера не вылетала за стенки тоннеля? Вешать коллайдеры не помогает, она привязана скриптом SmoothloockAt.
Надеюсь вы мне поможете! Спасибо!
Re: Привет! Можно я буду задавать тут глупые вопросы? Спасибо!
Добавлено:
19 май 2011, 19:26
Black_hole
Задавать направление шарику нужно по локальной системе координат.
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
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