unity3d實現玩家上線另一個玩家也能看見

來源:互聯網
上載者:User

      網路方面我喜歡寫成C/S的形式,但是官方的例子是peer-to-peer形式的,把客服端和服務端寫在一起,我在看的時候就遇到了很問題。下面看看代碼吧,以C/S的形式寫的,參考官方的例子改的。

    1. Server:服務端就是負責產生伺服器,代碼很簡單和聊天室的一樣。

    2.  Client:也很簡單,也只是串連伺服器,然後再加一個當串連伺服器成功就執行個體化一個遊戲對象的代碼。再在客服端放入一個cube的prefab預製,再給cube預製加一個NetworkView,最後再給cube預製來段運動控制移動的代碼就行了。

代買如下:

public var playerPrefab : Transform;function OnConnectedToServer(){Spawnplayer();}function Spawnplayer(){var myNewTrans : Transform = Network.Instantiate(playerPrefab, transform.position, transform.rotation, 0);}function OnPlayerDisconnected(player: NetworkPlayer) {Debug.Log("Clean up after player " + player);Network.RemoveRPCs(player);Network.DestroyPlayerObjects(player);}function OnDisconnectedFromServer(info : NetworkDisconnection) {Debug.Log("Clean up a bit after server quit");Network.RemoveRPCs(Network.player);Network.DestroyPlayerObjects(Network.player);Application.LoadLevel(Application.loadedLevel);}

    

    3. 把伺服器開著,後面開啟兩個客服端,在兩個客服端裡分別有兩個物體(物體被重疊了,你在一個客服端移動一個物體就能看到了)

   4.我發現這些天出現很多錯誤都是出自於NetworkView是否同步,還有連接埠號碼的重複。如果遇到問題,大家可以從這兩方面試試。還有就是,當用戶端強制斷開時,該用戶端再次串連伺服器時,情境中會比所有的用戶端數多一個,所以大家最好不要強制斷開,如果已經強制斷開了,那好,你把連接埠號碼重新改一下。

   5.資料互動方面隨著慢慢的研究我再寫出來。大家一起進步哈~~~~QQ:397319689(有點笨)~~~


   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.