Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/jackmawer/JacksWorld. An abandoned mini-project that I created while learning to use Unity with networking.
Something went wrong. Try again.
3.0 kB · 66 lines
C#
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667using System;using UnityEngine;using System.Collections;
/// <summary>/// This script automatically connects to Photon (using the settings file), /// tries to join a random room and creates one if none was found (which is ok)./// </summary>public class ConnectAndJoinRandom : Photon.MonoBehaviour{ /// <summary>Connect automatically? If false you can set this to true later on or call ConnectUsingSettings in your own scripts.</summary> public bool AutoConnect = true;
public byte Version = 1;
/// <summary>if we don't want to connect in Start(), we have to "remember" if we called ConnectUsingSettings()</summary> private bool ConnectInUpdate = true;
public virtual void Start() { PhotonNetwork.autoJoinLobby = false; // we join randomly. always. no need to join a lobby to get the list of rooms. }
public virtual void Update() { if (ConnectInUpdate && AutoConnect && !PhotonNetwork.connected) { Debug.Log("Update() was called by Unity. Scene is loaded. Let's connect to the Photon Master Server. Calling: PhotonNetwork.ConnectUsingSettings();");
ConnectInUpdate = false; PhotonNetwork.ConnectUsingSettings(Version + "."+Application.loadedLevel); } }
// to react to events "connected" and (expected) error "failed to join random room", we implement some methods. PhotonNetworkingMessage lists all available methods!
public virtual void OnConnectedToMaster() { if (PhotonNetwork.networkingPeer.AvailableRegions != null) Debug.LogWarning("List of available regions counts " + PhotonNetwork.networkingPeer.AvailableRegions.Count + ". First: " + PhotonNetwork.networkingPeer.AvailableRegions[0] + " \t Current Region: " + PhotonNetwork.networkingPeer.CloudRegion); Debug.Log("OnConnectedToMaster() was called by PUN. Now this client is connected and could join a room. Calling: PhotonNetwork.JoinRandomRoom();"); PhotonNetwork.JoinRandomRoom(); }
public virtual void OnPhotonRandomJoinFailed() { Debug.Log("OnPhotonRandomJoinFailed() was called by PUN. No random room available, so we create one. Calling: PhotonNetwork.CreateRoom(null, new RoomOptions() {maxPlayers = 4}, null);"); PhotonNetwork.CreateRoom(null, new RoomOptions() { maxPlayers = 4 }, null); }
// the following methods are implemented to give you some context. re-implement them as needed.
public virtual void OnFailedToConnectToPhoton(DisconnectCause cause) { Debug.LogError("Cause: " + cause); }
public void OnJoinedRoom() { Debug.Log("OnJoinedRoom() called by PUN. Now this client is in a room. From here on, your game would be running. For reference, all callbacks are listed in enum: PhotonNetworkingMessage"); }
public void OnJoinedLobby() { Debug.Log("OnJoinedLobby(). Use a GUI to show existing rooms available in PhotonNetwork.GetRoomList()."); }}