Photon Fusion VR — сетевой объект не синхронизируется?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Photon Fusion VR — сетевой объект не синхронизируется?

Сообщение Anonymous »

Я использую Photon Fusion, общий режим, и у меня есть 2 сцены: вход в систему и сеанс. Я могу подключить гарнитуру Quest 2 и 3 к одному и тому же общему сеансу виртуальной реальности и увидеть простой аватар обоих игроков (коробка), который хорошо синхронизируется, и даже обмениваться звуком (фотонный голос). Все работает отлично. То, что я изо всех сил пытался получить в течение нескольких дней, — это правильно объединенные в сеть объекты. Я попробовал все. У меня есть простой игровой объект в сцене сеанса (называемый BladeA) с сетевым объектом и компонентом сетевого преобразования. Я сохраняю этот объект, чтобы он был правильно зарегистрирован. У него также есть коллайдер коробки и твердое тело, а также тег 3D_Objects.
Чтобы «захватить» это в VR, у меня есть простой скрипт, прикрепленный к контроллеру VR, который предполагается, что он обнаружит OnTriggerEnter, а затем обновит сетевое преобразование BladeA, чтобы оно как бы «приклеилось» к контроллеру. Это тоже работает нормально — за исключением того, что с точки зрения другого игрока (в VR) положение BladeA вообще не меняется. Я даже добавил TextMeshPro в холст со сценарием для вывода списка всех сетевых идентификаторов объектов, а BladeA имеет одинаковый идентификатор для обоих клиентов (гарнитур).
< em>Как вы думаете, почему позиция BladeA не синхронизируется для каждого пользователя?
Этот скрипт прикрепляется к дочернему объекту на каждом VR ручной контроллер:

Код: Выделить всё

using UnityEngine;
using Fusion;

public class SphereTriggerLogger : NetworkBehaviour
{
private NetworkObject intersectedNetworkObject; // Store the intersected NetworkObject
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("3D_Objects"))
{
NetworkObject netObj = other.GetComponent();
if (netObj != null)
{
intersectedNetworkObject = netObj; // Store the intersected NetworkObject
}
}
}

private void OnTriggerExit(Collider other)
{
if (other.CompareTag("3D_Objects"))
{
NetworkObject netObj = other.GetComponent();
if (netObj != null && netObj == intersectedNetworkObject)
{
intersectedNetworkObject = null; // Clear the reference when the object exits
}
}
}

public override void FixedUpdateNetwork()
{
if (intersectedNetworkObject != null)
{
NetworkTransform networkTransform = intersectedNetworkObject.GetComponent();

// Update the NetworkTransform to match the sphere's transform
networkTransform.transform.position = transform.position;
networkTransform.transform.rotation = transform.rotation;
}
}
}
Изображение

Вот в чем я подозреваю, что может быть проблема:
(хотя не знаю, как это исправить).
Я подозреваю, что оба клиента видят свои собственные экземпляр BladeA, поскольку он загружается в сцену с самого начала, даже если оба пользователя согласны использовать один и тот же InstanceID для BladeA. И каждый клиент имеет полномочия над своим экземпляром (??), но не над экземпляром другого пользователя. Но в моей теории все еще есть дыры. Я просто не могу этого понять.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ot-syncing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Изменение скорости игрока приводит к резким движениям в многопользовательской игре Unity Photon Fusion.
    Anonymous » » в форуме C#
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Установить имя игрока/ник в Photon Fusion
    Anonymous » » в форуме C#
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Установить имя игрока/ник в Photon Fusion
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Unity Photon Fusion 2.0 Network Transform, выпуск
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • RPC-вызовы в Unity 3D/Photon Fusion 2
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»