103 lines
2.6 KiB
C#
103 lines
2.6 KiB
C#
using Photon;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class RpsDemoConnect : PunBehaviour
|
|
{
|
|
public InputField InputField;
|
|
|
|
public string UserId;
|
|
|
|
private string previousRoomPlayerPrefKey = "PUN:Demo:RPS:PreviousRoom";
|
|
|
|
public string previousRoom;
|
|
|
|
private const string MainSceneName = "DemoRPS-Scene";
|
|
|
|
private const string NickNamePlayerPrefsKey = "NickName";
|
|
|
|
private void Start()
|
|
{
|
|
InputField.text = ((!PlayerPrefs.HasKey("NickName")) ? string.Empty : PlayerPrefs.GetString("NickName"));
|
|
}
|
|
|
|
public void ApplyUserIdAndConnect()
|
|
{
|
|
string text = "DemoNick";
|
|
if (InputField != null && !string.IsNullOrEmpty(InputField.text))
|
|
{
|
|
text = InputField.text;
|
|
PlayerPrefs.SetString("NickName", text);
|
|
}
|
|
if (PhotonNetwork.AuthValues == null)
|
|
{
|
|
PhotonNetwork.AuthValues = new AuthenticationValues();
|
|
}
|
|
PhotonNetwork.AuthValues.UserId = text;
|
|
Debug.Log("Nickname: " + text + " userID: " + UserId, this);
|
|
PhotonNetwork.playerName = text;
|
|
PhotonNetwork.ConnectUsingSettings("0.5");
|
|
PhotonHandler.StopFallbackSendAckThread();
|
|
}
|
|
|
|
public override void OnConnectedToMaster()
|
|
{
|
|
UserId = PhotonNetwork.player.UserId;
|
|
if (PlayerPrefs.HasKey(previousRoomPlayerPrefKey))
|
|
{
|
|
Debug.Log("getting previous room from prefs: ");
|
|
previousRoom = PlayerPrefs.GetString(previousRoomPlayerPrefKey);
|
|
PlayerPrefs.DeleteKey(previousRoomPlayerPrefKey);
|
|
}
|
|
if (!string.IsNullOrEmpty(previousRoom))
|
|
{
|
|
Debug.Log("ReJoining previous room: " + previousRoom);
|
|
PhotonNetwork.ReJoinRoom(previousRoom);
|
|
previousRoom = null;
|
|
}
|
|
else
|
|
{
|
|
PhotonNetwork.JoinRandomRoom();
|
|
}
|
|
}
|
|
|
|
public override void OnJoinedLobby()
|
|
{
|
|
OnConnectedToMaster();
|
|
}
|
|
|
|
public override void OnPhotonRandomJoinFailed(object[] codeAndMsg)
|
|
{
|
|
Debug.Log("OnPhotonRandomJoinFailed");
|
|
PhotonNetwork.CreateRoom(null, new RoomOptions
|
|
{
|
|
MaxPlayers = 2,
|
|
PlayerTtl = 20000
|
|
}, null);
|
|
}
|
|
|
|
public override void OnJoinedRoom()
|
|
{
|
|
Debug.Log("Joined room: " + PhotonNetwork.room.Name);
|
|
previousRoom = PhotonNetwork.room.Name;
|
|
PlayerPrefs.SetString(previousRoomPlayerPrefKey, previousRoom);
|
|
}
|
|
|
|
public override void OnPhotonJoinRoomFailed(object[] codeAndMsg)
|
|
{
|
|
Debug.Log("OnPhotonJoinRoomFailed");
|
|
previousRoom = null;
|
|
PlayerPrefs.DeleteKey(previousRoomPlayerPrefKey);
|
|
}
|
|
|
|
public override void OnConnectionFail(DisconnectCause cause)
|
|
{
|
|
Debug.Log(string.Concat("Disconnected due to: ", cause, ". this.previousRoom: ", previousRoom));
|
|
}
|
|
|
|
public override void OnPhotonPlayerActivityChanged(PhotonPlayer otherPlayer)
|
|
{
|
|
Debug.Log("OnPhotonPlayerActivityChanged() for " + otherPlayer.NickName + " IsInactive: " + otherPlayer.IsInactive);
|
|
}
|
|
}
|