В назначенной настройке локальной сети я хочу, чтобы Unity NetworkTransform
просто отправлял каждый кадр.(Режим «Синхронное преобразование», а не твердое тело и т. Д.)
Мне интересно, как это сделать ... если вы просто установите скорость отправки 0,00001, будет ли она фактически делать это каждый кадр, что объектдвижется?
(Интерфейс Inspector позволяет только до 29 Гц, просто установите его в коде, если вы хотите меньшие значения.)
Я также думал о чем-то похожем на сценарий ......
void Update() { .. SetDirtyBit( ? ); }
будет ли это делать?
(И что вы там используете в качестве битовой маски?)
Для определения такого рода действительно требуется вечностьвещь экспериментальная.Очевидно, доку Unity - это шутка.И я не мог гуглить никого, кто уже понял это.Есть опыт?
Во-вторых ...
Дополнительная информация.Мы провели несколько экспериментов, и действительно, если вы установите его на очень маленькое значение, кажется для синхронизации NetworkTransform
каждого отдельного кадра.
(Конечноотправка не беспокоит, если она не перемещается, как @Programmer указывает ниже.)
ОДНАКО это не дает плавные результаты для кинематических объектов или положений камеры.Я не знаю почему;это связано с циклом обновления и точно, когда изменение происходит.Но то, что вы получаете, это «очень хороший джиттер».
В-третьих ...
Я провел эксперимент, , просто используя команды и Rpcs, для отправки некоторой информации каждый кадр (на самом деле от одного клиента к другому).
Я специально использовал специальную сеть ethernet соло, и приложения практически ничего не делают, кроме отправки информации каждый кадр (т.е. "вручную, просто используя Command / Rpc), то есть в Update ().
На самом деле, все еще отбрасывает много кадров, часто не отправляется.(Допустим, он пропускает 10 или 20 за 10 секунд.)
Горе!
Не беспокойтесь, если вам нужна информация, отправляемая "каждый кадр", скажем, по локальной сетисистема.