創作內容

3 GP

[Unity教學] 2D連線小遊戲製作 Part.3

作者:某燕│2016-12-16 20:13:37│巴幣:6│人氣:3462
這篇會講解兩個部分

1.按鈕功能製作
2.數字面板同步更新的方式


前言:
unity在5.x以後使用了的新的網路連線方法,簡稱UNet

為了解說方便,製作一個遊戲名叫 搶奪20 / Rob20 的連線小遊戲

規則:
兩個人輪流喊1~2個數字,先搶到20的人勝利


首先本篇開始前要釐清幾個事情

GM.cs主要在Server上負責處理遊戲邏輯與Client端的控制

Player.cs主要是把玩家做的事情告訴GM.cs,然後把GM.cs的訊息回傳到玩家的畫面上

接下來會用到幾個很重要的語法

[SyncVar]
把Server端的參數同步到Client
[Command]
被標記的方法在Client被呼叫,Server上執行
[ClientRpc]
被標記的方法在Server被呼叫,Client上執行
isServer
執行環境是否為Server
isClient
執行環境是否為Client
isLoaclPlayer
執行環境是否是本機玩家

接下來的講解將會大量的用到這幾個語法~

伺服器端

首先呢在GM.cs增加這幾行
public int Mumber = 0;public void AddMunber(int addMun){    Mumber += addMun;}

解說:

Mumber 就是目前的數字~搶到20就贏了
AddMunber()要接收一個參數,然後會把數字與參數相加


玩家端

在Player.cs 增加這幾行

public Button btnAddOne;
public Button btnAddTwo;
public Text txtMunber;
void Start()
{
    if (isLocalPlayer)
    {
        txtMunber = GameObject.Find("txtMunber").GetComponent<Text>();
        btnAddOne = GameObject.Find("btn1").GetComponent<Button>();
        btnAddTwo = GameObject.Find("btn2").GetComponent<Button>();
        btnAddOne.onClick.AddListener(() => CmdAddMunbers(1));
        btnAddTwo.onClick.AddListener(() => CmdAddMunbers(2));
    }
}


[SyncVar]
public int Munber;

[Command]
public void CmdAddMunbers(int addMun)
{
    gm.AddMunber(addMun);
}

void Update()
{
    if (isServer)
        Munber = gm.Mumber;
    if (isLocalPlayer)
        txtMunber.text = Munber.ToString();
}

解說:

0.還記的[Command]的意思嗎,在Client呼叫的方法實際會在Server端執行
1.Start()會抓到所有的物件實體
2.onClick.AddListener()會把場景上的按鈕的onClicke事件與CmdAddMunbers()方法綁定~
3.按鈕按下後會觸發CmdAddMunbers(),並在Server端上的Player.cs執行
4.GM.cs會把數字往上加
5.再藉由 Update()部分裡的Munber = gm.Mumber;把數字抓回Server端的Player.cs
6.[SyncVar]public int Munber;會同步Server端與Client端的Munber這個變數
7.再藉由 Update()部分裡的txtMunber.text = Munber.ToString();顯示在Canvas上

編譯成exe檔測試看看吧~


開兩個遊戲視窗,並且每個按鈕都點點看
數字會隨著按鈕+1或+2跟著往上加
兩方的數字同步顯示囉~

這篇先寫到這邊

下一篇會講只要是遊戲製作一定都會有的流程控制~

感謝看到這邊的你!!

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3416453
Some rights reserved. 姓名標示-非商業性 2.5 台灣

相關創作

同標籤作品搜尋:Unity3D|C#|教學

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

3喜歡★ericyin322 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:[Unity教學] 2D... 後一篇:[Unity教學] 2D...

追蹤私訊切換新版閱覽

作品資料夾

as88724香菇
畫畫好難啊..(☍﹏⁰)看更多我要大聲說昨天17:00


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】