引入Photon 中的Photon3Unity3D。dll
在untiy项目中创建PhotonManger类
using ExitGames.Client.Photon;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
/// <summary>
/// Photon管理
/// </summary>
public class PhotonManager : MonoBehaviour, IPhotonPeerListener
{
//创建单例
private static PhotonManager instance;
public static PhotonManager Instace { get { return Instace; } }
/// <summary>
/// 代表客户端
/// </summary>
private PhotonPeer peer;
/// <summary>
/// IP地址 端口在Photon。config中已配置好
/// </summary>
private string serverAddress = "127.0.0.1:5055";
/// <summary>
/// 服务器端名字
/// </summary>
private string applicationName = "MOBA";
/// <summary>
/// Udp协议
/// </summary>
private ConnectionProtocol protocol = ConnectionProtocol.Udp;
/// <summary>
/// 是否连接
/// </summary>
private bool isConnect = false;
#region Photon接口
public void DebugReturn(DebugLevel level, string message)
{
}
public void OnEvent(EventData eventData)
{
}
public void OnOperationResponse(OperationResponse operationResponse)
{
}
/// <summary>
/// 连接改变
/// </summary>
/// <param name="statusCode"></param>
public void OnStatusChanged(StatusCode statusCode)
{
Debug.Log(statusCode);
switch (statusCode)
{
case StatusCode.Connect:
isConnect = true;
break;
case StatusCode.Disconnect:
isConnect = false;
break;
default:
break;
}
}
#endregion
void Awake()
{
instance = this;
peer = new PhotonPeer(this, protocol);
peer.Connect(serverAddress, applicationName);
}
void Update()
{
if (!isConnect)
{
peer.Connect(serverAddress, applicationName);
}
peer.Service();
}
void OnApplicationQuit()
{
//断开连接
peer.Disconnect();
}
}
将该类添加到新建的GameObject后 输出Disconnect
开启photon后 连接成功