Скрипт для Лобби
using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class manager : MonoBehaviourPunCallbacks
{
public Text LogText;
void Start()
{
PhotonNetwork.AutomaticallySyncScene = true;
PhotonNetwork.NickName = "Player" + Random.Range(1000, 9999);
Log("Player's name is set to" + PhotonNetwork.NickName);
PhotonNetwork.GameVersion = "1";
PhotonNetwork.ConnectUsingSettings();
}
private void Log(string message)
{
Debug.Log(message);
LogText.text += "\n";
LogText.text += message;
}
public override void OnConnectedToMaster()
{
Log("connected to Master");
}
public void JoinRoom()
{
PhotonNetwork.JoinRandomRoom();
}
public void CreateRoom()
{
PhotonNetwork.CreateRoom(null, new Photon.Realtime.RoomOptions { MaxPlayers = 2 });
}
public override void OnJoinedRoom()
{
Log("joined the room");
PhotonNetwork.LoadLevel("Game");
}
}
Скрипт для игрока в комнате
using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GameMan : MonoBehaviourPunCallbacks
{
// Start is called before the first frame update
public GameObject PlayerPrefab;
private void Start()
{
Vector3 pos = new Vector3(1, 1);
PhotonNetwork.Instantiate(PlayerPrefab.name, pos, Quaternion.identity);
}
// Update is called once per frame
private void Update()
{
}
public void Leave() // метод, который висит на кнопке Exit
{
PhotonNetwork.LeaveRoom();
}
public override void OnLeftRoom() //когда текущий игрок покинит комнату
{
SceneManager.LoadScene(0);
}
public override void OnPlayerEnteredRoom(Player newPlayer) //когда кто-то зашел в комнату
{
Debug.LogFormat("Playr {0} entered room", newPlayer.NickName);
}
public override void OnPlayerLeftRoom(Player otherPlayer) //когда кто-то покинул комнату
{
Debug.LogFormat("Playr {0} left room", otherPlayer.NickName);
}
}