Я создаю многопользовательскую игру, используя Photon PUN2 на Unity . Сейчас я работаю над переподключением пользователей на случай перезапуска игры.
Во время игры я меняю сцены с помощью Photon (AutomaticsSyncScene = true и PhotonNetwork.LoadLevel (...)), поэтому, когда игрок подключается, автоматически загружается текущая активная сцена. Все отлично работает ... в редактор единства . Но при сборке при подключении и загрузке экрана сцены черный. Но Unity думает, что все в порядке, потому что не выдало никаких ошибок: /
Дополнительные «симптомы»:
- воспроизводится ТОЛЬКО в версии сборки;
- черный весь экран но пользовательский интерфейс (dr aws и работает правильно);
- экран становится черным только после создания экземпляра любого GO;
Я пытаюсь что-то изменить целый день ... Пожалуйста, помогите
Версия Unity: 2019.3.10f1
Целевая платформа: Windows 10
Мой код. Надеюсь, что это поможет
Подключение к комнате и загрузка подготовительной сцены:
public InputField nameField;
void Start()
{
RefreshUi(true);
PhotonNetwork.AutomaticallySyncScene = true;
PhotonNetwork.GameVersion = "game_0.1b";
PhotonNetwork.ConnectUsingSettings();
}
//on button click
public void JoinRoom()
{
PhotonNetwork.NickName = nameField.text;
PhotonNetwork.JoinRoom("Room_001");
}
public override void OnJoinedRoom()
{
if (PhotonNetwork.IsMasterClient)
PhotonNetwork.LoadLevel("LobbyScene");
}
Загрузка следующей сцены в моем стартовом игровом событии:
[PunRPC]
public void LoadUsers()
{
... // handeling data
if (!PhotonNetwork.IsMasterClient)
return;
PhotonNetwork.OpCleanRpcBuffer(photonView);
PhotonNetwork.LoadLevel("GameRoom");
}
Создание префабов:
protected override void Execute(List<GameEntity> entities)
{
foreach (var e in entities)
{
var prefab = Resources.Load<GameObject>(e.prefab.path);
if (!prefab)
continue;
var view = Object.Instantiate(prefab, _parent);
e.ReplaceView(view);
}
}