• Unity3D 客户端编程


    Photon Server 和 Unity3D 数据交互:

    Photon Server 服务端编程

    Unity3D 客户端编程

    VS2017 之 MYSQL实体数据模型

    1:打开unity新建新项目,并引入Photon3Unity3D.dll到plugins文件中。

    2、新建一个空物体,添加两个脚本文件。

     3、编辑Photon Engine。

      1 using System.Collections;
      2 using System.Collections.Generic;
      3 using UnityEngine;
      4 using ExitGames.Client.Photon;
      5 using System;
      6 
      7 public class PhotonEngine : MonoBehaviour, IPhotonPeerListener
      8 {
      9     //单例模式
     10     private static PhotonEngine instance;
     11     private static PhotonPeer peer;
     12 
     13     public static PhotonPeer Peer
     14     {
     15         get
     16         {
     17             return peer;
     18         }
     19     }
     20 
     21     private void Awake()
     22     {
     23         if (instance == null)
     24         {
     25             instance = this;
     26             //不需要销毁
     27             DontDestroyOnLoad(this.gameObject);
     28         }
     29         else if (instance != this)
     30         {
     31             Destroy(this.gameObject);
     32             return;
     33         }
     34     }
     35     private void Start()
     36     {
     37         try
     38         {
     39             //PhotonPeer实例化时需要监听类和连接协议。所以该类继承IPhotonPeerListener接口实现监听
     40             peer = new PhotonPeer(this, ConnectionProtocol.Udp);
     41             peer.Connect("122.237.104.105:5055", "Mygame1");
     42         }
     43         catch (Exception e)
     44         {
     45             Debug.Log(e.ToString());
     46         }
     47     }
     48 
     49     private void Update()
     50     {
     51         //时刻发送请求
     52         peer.Service();
     53     }
     54 
     55     private void OnDestroy()
     56     {
     57         if (peer != null && peer.PeerState == PeerStateValue.Connected)
     58         {
     59             peer.Disconnect();
     60         }
     61     }
     62 
     63     public void DebugReturn(DebugLevel level, string message)
     64     {
     65         
     66     }
     67 
     68     public void OnEvent(EventData eventData)
     69     {
     70         switch (eventData.Code)
     71         {
     72             case 1:
     73                 Dictionary<byte, object> di = eventData.Parameters;
     74                 object i;
     75                 di.TryGetValue(2, out i);
     76                 Debug.Log("收到服务器消息" + i.ToString());
     77                 break;
     78             case 2:
     79                 break;
     80             default:
     81                 break;
     82         }
     83 
     84     }
     85 
     86     public void OnOperationResponse(OperationResponse operationResponse)
     87     {
     88         switch (operationResponse.OperationCode)
     89         {
     90             case 1:
     91                 Debug.Log("收到服务器响应!。。。。。");
     92                 Dictionary<byte, object> d = operationResponse.Parameters;
     93                 object i, j;
     94                 d.TryGetValue(1, out i);
     95                 d.TryGetValue(2, out j);
     96                 Debug.Log("收到服务器返回" + i.ToString() + j.ToString());
     97                 break;
     98             default:
     99                 break;
    100         }
    101     }
    102 
    103     public void OnStatusChanged(StatusCode statusCode)
    104     {
    105         Debug.Log(statusCode);
    106     }
    107 }

    4、text类用来发送请求。

     1 using System;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using UnityEngine;
     5 
     6 public class text : MonoBehaviour {
     7 
     8 
     9     private void Update()
    10     {
    11         if (Input.GetMouseButtonDown(0))
    12         {
    13             SendRequest();
    14         }
    15     }
    16 
    17     private void SendRequest()
    18     {
    19         Dictionary<byte, object> date = new Dictionary<byte, object>();
    20         date.Add(1, 1000);
    21         date.Add(2,"sdgsdgdsfg");
    22         PhotonEngine.Peer.OpCustom(1, date, true);
    23     }
    24 }

    5、运行结果。先启动服务器在启动客户端,鼠标左点击发送请求。

    服务端:

    客户端:

     下载地址:https://gitee.com/today6/unity

  • 相关阅读:
    C++11中静态局部变量初始化的线程安全性
    213. 打家劫舍 II
    cas解决aba相关问题
    socket[可读可写异常]3种条件的发生
    linux信号处理 (信号产生 信号阻塞 信号集)
    vim set paste解决粘贴乱序乱码问题
    174. 地下城游戏
    208. 实现 Trie (前缀树) 和 面试题 17.13. 恢复空格
    Centos安装和卸载docker
    Go语言轻量级框架-Gin与入门小案例MySQL增删查改
  • 原文地址:https://www.cnblogs.com/unknown6248/p/11462721.html
Copyright © 2020-2023  润新知