Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/RpsDemoConnect.cs
2026-02-21 16:45:37 +08:00

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);
}
}