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

Не работает интерполяция.

СообщениеДобавлено: 20 сен 2016, 00:36
nbg_yalta
Всем привет, столкнулся с неприятной неприятностью, не работает интерполяция. Пробовал и фотон с его Photon Network Transform, и Unet с Network Transform а так же их разные настройки, но не получил и близко приемлимого результата, тогда как по идее все должно работать нормально по дефолту. Когда то давным давно сталкивался с подобным на юнете, решил что это баг. Переделал на фотон но получил то же самое, на сколько помню помог перенос в новый проект. Сейчас делал проект на фотон, и опять эта лажа, создал 2 тестовых проекта с нуля для унет и фотон, на обоих получается дерганая хрень.
[Unity 5.4 / Windows 10x64]

Вот на примере фотона (простой 2д спрайт движется на клик мышки):
Изображение


Скрипты простетские: http://pastebin.com/LHbamRTD

Помогите, а то я уже в отчаянии, и так все на перекосяк последнее время и тут еще ЭТО!

Если что вот ссылки на проеkты
PHOTON
https://mega.nz/#!4dNxlCAS!T9qqAg39eVAO ... sTJ8ybFKQY
UNET
https://mega.nz/#!EZ8T3bgB!iqr9Vlm3wee8 ... rWR5_pBwq8

Re: Не работает интерполяция.

СообщениеДобавлено: 20 сен 2016, 16:02
nbg_yalta
Так, есть прогресс на фотоне, сглаживание заработало когда я в Observed Components вместо трансформа игрока поместил компонент Photon Transform View. На счет Unet вопрос открыт.

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 05:27
nbg_yalta
В общем проехали, uNet не работает почему то с трансформом, с твердым телом все нормально.

Дабы не плодить темы тут нарисовалась еще одна проблема, тоже по сути с интерполяцией связанная. Короче у меня игроки по клику поворачиваются на 90 градусов. Так вот во время этого поворота они могут стрелять и из скриншотов видно что при этом получается
Скрытый текст:
Изображение
Изображение


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

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 09:18
lol
Кроме синхронизации поворота, я бы во время выстрела всегда передавать и его направление.

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 10:14
Tolking
А что толку? :) И цель на разных клиентах может быть в разных местах...

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 10:21
Cr0c
Tolking писал(а):А что толку? :) И цель на разных клиентах может быть в разных местах...

А причём тут цель? При выстреле клиент уже зафиксировал направление и передал его серверу. Не будет рассинхрона вращение-выстрел.

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 19:30
nbg_yalta
Cr0c писал(а):
Tolking писал(а):А что толку? :) И цель на разных клиентах может быть в разных местах...

А причём тут цель? При выстреле клиент уже зафиксировал направление и передал его серверу. Не будет рассинхрона вращение-выстрел.


По идее все и так должно происходить по данному принципу, не подскажите как это сделать?

Код на выстрел.

Синтаксис:
Используется csharp
void Update ()
    {
        if (Input.GetMouseButtonUp(0))
        {
                if (isServer)
                    RpcShoot();
                else
                    CmdShoot();
        }
    }

    [Command]
    void CmdShoot()
    {
        RpcShoot();
    }

    [ClientRpc]
    void RpcShoot()
    {
        Vector3 pos = thisT.position + thisT.up * bulletSpawnOffset;
        Quaternion rot = thisT.rotation;
        Rigidbody2D bulletObj = Instantiate(bullet, pos, rot) as Rigidbody2D;
        bulletObj.AddForce(bulletObj.transform.up * 350);
    }
 

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 21:44
Tolking
Cr0c писал(а):
Tolking писал(а):А что толку? :) И цель на разных клиентах может быть в разных местах...

А причём тут цель? При выстреле клиент уже зафиксировал направление и передал его серверу. Не будет рассинхрона вращение-выстрел.

На одном клиенте визуально будет попадание, а на втором пролетит мимо но попадет?

Re: Не работает интерполяция.

СообщениеДобавлено: 26 сен 2016, 22:18
Cr0c
Tolking писал(а):
Cr0c писал(а):
Tolking писал(а):А что толку? :) И цель на разных клиентах может быть в разных местах...

А причём тут цель? При выстреле клиент уже зафиксировал направление и передал его серверу. Не будет рассинхрона вращение-выстрел.

На одном клиенте визуально будет попадание, а на втором пролетит мимо но попадет?

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

Re: Не работает интерполяция.

СообщениеДобавлено: 27 сен 2016, 03:59
nbg_yalta
Cr0c писал(а):
Tolking писал(а):
Cr0c писал(а):
Tolking писал(а):А что толку? :) И цель на разных клиентах может быть в разных местах...

А причём тут цель? При выстреле клиент уже зафиксировал направление и передал его серверу. Не будет рассинхрона вращение-выстрел.

На одном клиенте визуально будет попадание, а на втором пролетит мимо но попадет?

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


Как передать правильный и одинаковый угол (или направление) выстрела всем остальным игрокам кто то знает?