Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Сеть

Ответ
 
Опции темы
Старый 15.10.2013, 17:17   #1
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
Photon Network-синхронизация дочерних объектов

Всем привет. Продолжаю изучать фотон. Может-ли кто-то подсказать, допустим у меня есть объект объединяющий в себе другие объекты. (Танк).
Я создаю этот объект через Photon Istantiance. И он отображается у других игроков. Подскажите как отображать еще у других клиентов вращение его башни (т.е его children GOs) ? Если повесить PhotonView-'ничего не произойдет. Неужели надо отдельно спавнить через Photon Instantiance каждый его дочерний элемент, а потом объединять?
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 15.10.2013, 17:25   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Photon Network-синхронизация дочерних объектов

Надо писать скрипт сериализации, указывать этот скрипт как observer для PhotonView. Там есть пример с сантехником и передачей его положения и вращения таким способом на сколько я помню.

Грубо примерно так (без интерполяции):
protected void OnPhotonSerializeView(PhotonStream streamPhotonMessageInfo info)
    {
        if (
stream.isWriting)
        {
            
stream.SendNext(transform.position);
            
stream.SendNext(transform.rotation);
            
// передача поворота башни
            
stream.SendNext(turretTransform.localRotation);
        }
        else
        {
            
transform.position = (Vector3)stream.ReceiveNext();
            
transform.rotation = (Quaternion)stream.ReceiveNext();
            
// прием поворота башни
            
turretTransform.localRotation = (Quaternion)stream.ReceiveNext();
        }
    } 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Alex_Witcher (15.10.2013)
Старый 15.10.2013, 18:19   #3
Alex_Witcher
Нуждающийся
 
Регистрация: 15.02.2012
Сообщений: 53
Написано одно полезное сообщение
Ответ: Photon Network-синхронизация дочерних объектов

спасибо, работает. А то я уже начал пытаться инстантить отдельными префабами и соединять))) Ну интерполяцию я уже смогу добавить.
__________________
unity3d, 1я поделка.
https://play.google.com/store/apps/d...GVsaWNmcmVlIl0.
(Offline)
 
Ответить с цитированием
Старый 06.04.2024, 05:17   #4
BIDGAR
AnyKey`щик
 
Регистрация: 06.04.2024
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Ответ: Photon Network-синхронизация дочерних объектов

Сообщение от pax Посмотреть сообщение
Надо писать скрипт сериализации, указывать этот скрипт как observer для PhotonView. Там есть пример с сантехником и передачей его положения и вращения таким способом на сколько я помню.

Грубо примерно так (без интерполяции):
protected void OnPhotonSerializeView(PhotonStream streamPhotonMessageInfo info)
    {
        if (
stream.isWriting)
        {
            
stream.SendNext(transform.position);
            
stream.SendNext(transform.rotation);
            
// передача поворота башни
            
stream.SendNext(turretTransform.localRotation);
        }
        else
        {
            
transform.position = (Vector3)stream.ReceiveNext();
            
transform.rotation = (Quaternion)stream.ReceiveNext();
            
// прием поворота башни
            
turretTransform.localRotation = (Quaternion)stream.ReceiveNext();
        }
    } 
Здравствуйте. Я понимаю, что с публикации вашего ответа прошло более 10 лет.., но у меня сейчас аналогичная проблема, башня танка не синхронизируется. При попытки добавления скрипта в photonView, выдаёт ошибку does not implement interface member 'IPunObservable.OnPhotonSerializeView(PhotonStream , PhotonMessageInfo)'. 'gun) n.OnPhotonSerializeView(PhotonStream, PhotonMessageInfo)' cannot implement an interface member because it is not public.
(Offline)
 
Ответить с цитированием
Старый 06.04.2024, 14:21   #5
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Photon Network-синхронизация дочерних объектов

Сообщение от BIDGAR Посмотреть сообщение
Здравствуйте. Я понимаю, что с публикации вашего ответа прошло более 10 лет.., но у меня сейчас аналогичная проблема, башня танка не синхронизируется. При попытки добавления скрипта в photonView, выдаёт ошибку does not implement interface member 'IPunObservable.OnPhotonSerializeView(PhotonStream , PhotonMessageInfo)'. 'gun) n.OnPhotonSerializeView(PhotonStream, PhotonMessageInfo)' cannot implement an interface member because it is not public.
Монобех наследует MonoBehaviourPun и IPunObservable?

Нужно что-то типа:
public class MyNetworkTank MonoBehaviourPunIPunObservable
{
    ...
    
void OnPhotonSeriaizeView(PhotonStream streamPhotonMessageInfo info)
    {
        if(
stream.IsWriting)
        {
            
stream.SendNext(transform.position);
            
stream.SendNext(transform.rotation);
        }
        else
        {
            
position = (Vector3)stream.ReceiveNext();
            
rotation = (Quaternion)stream.ReceiveNext();
        }
    }
    ...

__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:24.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com