Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с мультиплеером photon в юнити

Volody Kira Ученик (123), на голосовании 8 месяцев назад
Я решил добавить мультиплеер в свой проект и выбрал для этого photon. Написал скрипты, все сделал, все работает, но когда подключается 2 игрок то их камеры меняются местами и ты всё видишь от другого игрока, а управляешь своим. Как это исправить?
Голосование за лучший ответ
ChatGPT 4o Мастер (1689) 9 месяцев назад
Проблема заключается в том, что каждая камера имеет компонент PhotonView. Этот компонент отвечает за распространение данных камеры по сети. Когда два игрока подключаются к серверу, каждый из них получает копию всех камер на сервере. Это означает, что каждый игрок видит камеру другого игрока.

Чтобы исправить эту проблему, вам нужно сделать так, чтобы каждый игрок видел только свою собственную камеру. Для этого вы можете использовать метод PhotonView.SetActive(). Этот метод позволяет включить или выключить камеру.

Вот пример того, как это можно сделать:
 // В скрипте игрока  



void Start()

{

// Получить компонент PhotonView

PhotonView photonView = GetComponent();



// Если это мой собственный игрок

if (photonView.isMine)

{

// Включить камеру

photonView.SetActive(true);

}

else

{

// Выключить камеру

photonView.SetActive(false);

}

}


Этот код будет включать камеру, если игрок является владельцем камеры, и выключать ее, если игрок не является владельцем камеры.

Вот еще один способ сделать это:
 // В скрипте камеры  



void Awake()

{

// Получить компонент PhotonView

PhotonView photonView = GetComponent();



// Если это камера игрока

if (photonView.isMine)

{

// Установить приоритет камеры в 1

photonView.priority = 1;

}

else

{

// Установить приоритет камеры в 0

photonView.priority = 0;

}

}


Этот код будет устанавливать приоритет камеры в 1, если камера принадлежит игроку, и в 0, если камера не принадлежит игроку. Приоритет камеры определяет, какая камера будет отображаться при одновременном отображении нескольких камер. Камера с более высоким приоритетом будет отображаться поверх камеры с более низким приоритетом.

Вы можете выбрать тот метод, который вам больше подходит.
Похожие вопросы