Unity3Dクライアントプログラミング

フォトンServerとUnity3Dのデータ交換:

フォトンServerのサーバー側のプログラミング

Unity3Dクライアントプログラミング

1:新しい統一新しいプロジェクトを開き、プラグインPhoton3Unity3D.dllファイルに導入します。

 

 

2、2つのスクリプト・ファイルを追加し、新しい空のオブジェクトを作成します。

 

 

 3、光子エンジンを編集します。

  1  使用にSystem.Collectionsと、
  2  使用System.Collections.Genericと、
  3  使用UnityEngineと、
  4  使用ExitGames.Client.Photonと、
  5  使用してシステムを。
  6  
  7  パブリック クラスPhotonEngine:MonoBehaviour、IPhotonPeerListener
   8  {
   9      // 单例模式
10      プライベート 静的PhotonEngineインスタンス。
11      プライベート 静的PhotonPeerピア。
12  
13      パブリック 静的PhotonPeerピア
 14      {
図15は、         取得し
16          {
 17              リターンピア;
18          }
 19      }
 20  
21      プライベート ボイドアウェイク()
 22      {
 23          であれば(例えば== NULL 24          {
 25              インスタンス= この;
26              // 不需要销毁
27              DontDestroyOnLoad(この.gameObject)。
28          }
 29          、他の 場合(例えば!= この30         {
 31である              (破棄この.gameObject);
 32              リターン;
 33である         }
 34である     }
 35      プライベート ボイド開始()
 36      {
 37 [          試みる
38は         {
 39              //がインスタンス化さ接続及びプロトコルタイプPhotonPeerを監視する必要があります。したがって、リスナクラスがIPhotonPeerListenerインタフェース継承
40              を使用ピア= 新しい新しい PhotonPeer(この、ConnectionProtocol.Udp);
 41である              peer.Connectを(" 122.237.104.105:5055 "" Mygame1 ");
42          }
 43          キャッチ(例外e)
 44          {
 45              DEBUG.LOG(e.ToString())。
46          }
 47      }
 48  
49      プライベート ボイド更新()
 50      {
 51          // 时刻发送请求
52          peer.Service()。
53      }
 54  
55      プライベート ボイドOnDestroy()
 56      {
 57          であれば(ピア!= NULL && peer.PeerState == PeerStateValue.Connected)
 58         {
 59              peer.Disconnect()。
60          }
 61      }
 62  
63      公共 ボイド DebugReturn(DebugLevelのレベル、文字列メッセージ)
 64      {
 65          
66      }
 67  
68      公共 ボイドOnEventの(EventDataのEVENTDATA)
 69      {
 70          スイッチ(eventData.Code)
 71          {
 72              ケース 1 73                  辞書< バイトオブジェクト >ディ=eventData.Parameters;
 74                  オブジェクトI;
 75                  di.TryGetValue(2OUT I);
 76                  DEBUG.LOG(" メッセージサーバを受け取る" + i.ToString());
 77                  BREAK ;
 78              ケース 2 79                  BREAK ;
 80              デフォルト81                  BREAK ;
 82          }
 83  
84      }
 85  
86      公共 ボイドOnOperationResponse(operationResponse operationResponse)
87      {
 88          スイッチ(operationResponse.OperationCode)
 89          {
 90              ケース 1 91である                  DEBUG.LOG(" !サーバーの応答が受信された..... " ;)
 92                  辞書< バイトオブジェクト > D = operationResponse.Parameters;
 93                  オブジェクトI 、J;
 94                  d.TryGetValue(1OUT I);
 95                  d.TryGetValue(2OUT J);
 96                 DEBUG.LOG(" 收到服务器返回" + i.ToString()+ j.ToString())。
97                  ブレーク;
98              デフォルト99                  休憩100          }
 101      }
 102  
103      公共 ボイド(のStatusCodeからstatusCode)OnStatusChanged
 104      {
 105          DEBUG.LOG(からstatusCode)。
106      }
 107 }

4は、テキストクラスはリクエストを送信するために使用されます。

1  使用してシステムを。
2  使用にSystem.Collectionsと、
3  使用System.Collections.Genericと、
4  使用UnityEngineと、
5  
6  パブリック クラステキスト:MonoBehaviour {
 7  
8  
9      プライベート ボイド更新()
 10      {
 11          であれば(Input.GetMouseButtonDown(0 ))
 12          {
 13              のsendRequest()。
14          }
 15      }
 16  
17      プライベート ボイドのsendRequest()を
18      {
 19          辞書< バイトオブジェクト >日付= 新しい辞書< バイトオブジェクト > ();
20          date.Add(11000年)。
21          date.Add(2" sdgsdgdsfg " )。
22          PhotonEngine.Peer.OpCustom(1、日付、)。
23      }
 24 }

5、営業成績。サーバがクライアントを起動する起動し、マウスの左は、リクエストを送信するためにクリックしてください。

サーバー:

 

 

クライアント:

おすすめ

転載: www.cnblogs.com/unknown6248/p/11462721.html