Unity C# 網路連線教學(二)電腦連線的建立

 

在這篇裡我們要教各位如何利用Unity來建立兩台電腦間的連線,在這個範例中我們使用的是主從式網路架構,也就是兩台電腦中的其中一台必須是伺服器(Server)而另外一台則是用戶端(Client)

伺服器端會等待用戶端連線進來,當連線程式處理完畢後就可以進行資料交換,由於目前只是要建立兩台電腦的連線,並沒有要透過伺服器操縱用戶端所以任何一端當伺服器都可以執行的,接下來就開始操作如何進行連線。

 

注意!!!!這篇是我在一年多前寫的,目前部落格上有Unity內建的連線方式,對於開發者來說會方便很多!希望各位可以以新版本為主會比較好喔!!!(連結付在下面)

http://cindyalex.pixnet.net/blog/post/229962062

 

1. 首先我們要先開啟一個空的專案,並在場景中新增一個空物件

2-1.png

新增完空物件後接下來要新增一個C#的程式碼,並將這段程式碼放在剛剛新增的空物件上,讓它可以在遊戲開始後執行。

 

2. 新增一段C#程式碼。

2-2.png

 

3.將程式碼放在空物件上。

2-3.png

 

4. 接下來就要開始寫程式囉!首先先開啟剛剛新增的程式碼的編輯頁面。

2-4.png

接下來我們要撰寫下列的程式碼,程式碼的內容可以參考我的註解。

===============================================================

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//這裡的class要打自己設定的名稱喔,如果你的C#程式碼不叫DemoServer請自行修正

public class DemoServer : MonoBehaviour {
    private int port = 8000;
    // Use this for initialization.

    private void OnGUI()   //由於會使用到UI(UserInterface)所以宣告OnGUI函式。
    {
        //首先先取得當前連線狀態。
        if (Network.peerType == NetworkPeerType.Disconnected)//若當尚未進行連線(伺服器未開啟時)
        {
            //顯示出一個按鈕按鈕上的文字為"Start Server"。
            if (GUI.Button(new Rect(100, 100, 100, 50), "Start Server") == true)  //如果按下按鈕後。
            {
                Network.InitializeServer(10, port, !Network.HavePublicAddress());  //首先先初始化伺服器,第一個參數為

                連線的人數上限,第二個參數為連線的Port,第三個參數為是否要使用NAT這裡為不使用。
            }


            //顯示出一個按鈕按鈕上的文字為"Connect to Server"。
            if (GUI.Button(new Rect(100, 200, 100, 50), "Connect to Server"))  //如果按下按鈕後。
            {
                Network.Connect("127.0.0.1", port);  //連線到"127.0.0.1"的IP上的port(這裡的port代表8000)。
            }
        }

        else  //這裡的else呼應上面的if代表已經連線(不論用戶端或者伺服端。
        { 
            //顯示出一個問字訊息,內容為目前的連線人數,還有自己的IP。
            GUI.Label(new Rect(100, 150, 100, 50), "人數 = " + Network.connections.Length + "\n" +

            Network.player.ipAddress);


            //顯示出一個按鈕按鈕上的文字為"Disconnected"。
            if (GUI.Button(new Rect(100, 100, 100, 50),"Disconnected") == true)  //如果按下按鈕後。
            {
                Network.Disconnect();  //中斷伺服器連線,一旦伺服器中斷則客戶端也會自動中斷。
            }
        }
    }
}

===============================================================

新增完上述的程式碼後就大功告成了,接下來我們要來試試看是否可以進行連線,首先我們要先匯出我們的場景並且執行,我們會得到下面的畫面

 

5. 匯出並執行場景。

2-6.png

 

6. 執行後會出現一個視窗,我們點擊Play,同時也按下unity的play鍵讓兩個專案同時執行。

2-8.png

 

7. 接下來我們就會得到下面的畫面,此時兩個專案尚未連線我們選擇其中一方點擊"Start Server"鍵來初始畫伺服器。

2-9.png

 

8. 由於目前尚未有人連線進來,所以目前連線人數為0,接著我們讓另一個應用程式點擊"Connect to Server"進行連線。

2-10.png

 

這樣就完成我們的連線囉 !

2-11.png

 

 

-------------------------------------------------------------------------------------------------------------------------------------

 

我們有粉絲專頁囉!!!       

如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!

https://www.facebook.com/Straying2018/

 

●     如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !  

●     對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!  

●     有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家 !

 

-  By Alex  -

 

arrow
arrow
    創作者介紹
    創作者 『迷途』 的頭像
    『迷途』

    迷途 - Unity 工作室

    『迷途』 發表在 痞客邦 留言(0) 人氣()