フォトン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(2、OUT 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(1、OUT I); 95 d.TryGetValue(2、OUT 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(1、1000年)。 21 date.Add(2、" sdgsdgdsfg " )。 22 PhotonEngine.Peer.OpCustom(1、日付、真)。 23 } 24 }
5、営業成績。サーバがクライアントを起動する起動し、マウスの左は、リクエストを送信するためにクリックしてください。
サーバー:
クライアント: