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

Синхронизация столкновений по сети.

СообщениеДобавлено: 11 сен 2012, 22:03
WebWolf
Привет. Не можем избавиться от бага синхронизации столкновений. При столкновении танков на фотоне они разлетаются в разные стороны, как буд то один коллайдер вошел в другой. Подскажите пожалуйста как лучше сделать синхронизацию столкновений? Пробовал скрипт из юнити примера с интерполяцией NetworkRigidbody.. от него танк движется рывками и так же разлетаются они.

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 11 сен 2012, 22:37
Kayler
та же проблема.. при столкновении машин машины не врезаются а ездят друг по другу, как будто перед треугольный

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 12 сен 2012, 05:22
IDoNotExist
Сервер пойди не авторитарный? Либо синхронизируете позицию Rigidbody, что плохо сказывается на рассчете физики.
Тема похожая была, я там советовал как можно побороть http://www.unity3d.ru/distribution/viewtopic.php?f=5&t=10108
IDoNotExist писал(а):
Diab10 писал(а):Надо как то решить проблему с разлётами, а так всё норм

Легко сказать:), без костыля не обойтись полюбому, один выход который я вижу: не синхронизировать позицию Rigidbody, синхронизировать только velocity и angularVelocity и при разнице позиций на клиентах додвигать его до нужного места "силами" AddForce.

Вот смотрите: получается что на каком - либо клиенте А, Rigidbody игрока - клиента является источником данных для другого клиента В (клиентов), в то же время клиент A является приемником данных от клиента B, клиент B у вас передает позицию своего Rigidbody, а двигать Rigidbody как известно из документации нужно только силами, во избежания проблем которые возникли у вас. То же самое возникнет без всяких сетей, если просто попробуете сдвинуть позицию Rigidbody внутрь другого Rigidbody/Коллайдера.

UPD. Еще метод придумал, синхронизировать позицию в нем можно, даже нужно, но перед этим делать Rigidbody.SweepTest, от предыдущей позиции, и если SweepTest натыкается на другой Rigidbody, корректировать полученную позицию так чтобы он не оказался внутри (достаточно её сместить на полученный RaycastHit.distance, и Rigidbody окажется впритык к другому).

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 12 сен 2012, 12:42
WebWolf
Photon Cload
Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то :) остается настроить ригидбоди.

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 12 сен 2012, 15:12
IDoNotExist
WebWolf писал(а):Photon Cload

Не знаю такого, знаю только Photon Cloud.

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

Щито? А как физика будет без Rigidbody вычисляться?

И при чем тут его настройки, вы ж вначале сказали что проблемы из-за синхронизации, начали за здравие, а закончили за упокой.

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 12 сен 2012, 17:46
Syberex
А как у вас танки движуться? rigidbody.velocity или transform.Translate() ?

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 20 сен 2012, 12:26
mrcoder
я бы не советовал использовать готовые сетевые решения, особенно если хотите сделать серьезную вещь.
бесплатный сыр сами знаете где... там еще куча критических уязвимостей впридачу наверняка в комплекте идет.

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

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

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 04 окт 2012, 18:50
troyanich
Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то остается настроить ригидбоди.

не понятно как всё же вы решили проблему (popcorn1)

Re: Синхронизация столкновений по сети.

СообщениеДобавлено: 04 окт 2012, 20:56
WebWolf
troyanich писал(а):
Короче как мы выяснили это из за ригидбоди. Попробуй его отрубить на сетевых машинах.. и он будут врезаться как каменные но уже что то остается настроить ригидбоди.

не понятно как всё же вы решили проблему (popcorn1)

Нет не решили.. пока с отключенным ригидбоди :(