從零開始的做游戲(五)——致剛學(xué)程序的初學(xué)者
序
之前也有見到許多類似的問題,我之前從來沒有學(xué)過代碼,我現(xiàn)在要想寫代碼怎么寫,其實很簡單,你會復(fù)制粘貼嗎,會的話那就入門了。
你在騙我吧?讀完這一篇你就明白了。
啟動程序
首先我們拼好一塊UI,就像圖中這樣。

UI是如何被加載在屏幕中的,可以查看上一期教程的后半部分。

我們首先創(chuàng)建個UI腳本

然后使用VS.NET打開它,如果你不記得這個操作了,可以回顧下UP之前的這篇專欄后半部分

寫代碼
如果你是第一次寫程序,那就跟著我的步驟一步步復(fù)制粘貼就好,可能其中有許多東西你都不懂,其實也很正常,所以第一次,你能復(fù)制代碼再粘貼上去實現(xiàn)功能就完美了。
首先你需要明白什么是引用,那么在介紹之前你先在下圖箭頭處插入一些代碼:

using UnityEngine.UI;
這段叫做引用代碼,其意義就是如果不引用在下面寫某些代碼就會報錯,會認(rèn)不到一些功能。
可能你會覺得奇怪,為何還要引用呢,直接所有代碼都支持多好,那么你思考一下你出去買一盒100克的餅干需要一個超大號打包袋嗎,其實程序也需要想方設(shè)法的節(jié)約,否則你的游戲很可能是“神優(yōu)化”(即看起畫面并不是很好,但卻要求配置非常高)
接下來你要明白 Start 和 Update,下面的圖已經(jīng)寫的很清楚了。

為什么會分為Start和Update呢,舉個例子,我們可以在start里設(shè)置HP = 5,這樣就可以定義HP為5點。
Update里我們定義被傷害后HP-1,然后Update就起到了“監(jiān)視”的作用,程序會不停的循環(huán),看你有沒有被傷害,一旦被傷害就HP-1。
而為什么要一開始把HP = 5寫到Start里呢,因為我們只能在程序開始定義一次HP=5,如果寫到循環(huán)里,你會發(fā)現(xiàn)HP一旦不等于5,程序會馬上把HP變成5,就不是我們想要的效果了。
那么再接下來,我們今天教學(xué)的是識別屏幕中的按鈕,如何識別呢,我們先在start里粘貼進這樣的語句:

上圖中,有一段紅色波浪線的部分,這段代表程序有錯,這里為什么有錯呢,是因為我還沒有寫OnClick里面的內(nèi)容,完整的程序是這樣的:

好了,我們這一段基礎(chǔ)代碼就寫好了,或許看到這里的你會說“我完全沒有看懂這代碼是什么”
但是我想告訴你的是,這段代碼就可以實現(xiàn)識別UI中的每一個按鈕,作為程序的初學(xué)者,一次性接受大量的知識是很難的,所以一開始多來點實踐,去網(wǎng)上找一些別人寫好的代碼,并修改用來套用自己的項目,你不必知道代碼中每一段的意義,但是你需要知道這一大片代碼只需修改哪幾個部分就可以實現(xiàn)什么功能。
做游戲嘛,主要的目的就是你要把游戲做出來,玩家不會在意你的代碼是什么,只會在意有沒有BUG,其實這些代碼很多也是我去各種論壇收集的。
最后,我們用這段代碼修改了里面的一些參數(shù),最后效果如下:

在上圖中,你需要明白這幾個事情
注釋
“//后面跟著一些文字”這個是注釋,意思就是寫給你或者寫給其他程序員看的,在雙斜杠后面的內(nèi)容程序是忽略的,你可以寫下任意文字,一般在代碼里會被自動解析成綠色,方便一眼識別。
同樣的還有一種注釋是/*在中間寫入注釋內(nèi)容,
這些注釋可以隨意的換行*/
當(dāng)然,注釋除了用于寫入程序員留下的話外,還可以將你暫時不需要的代碼注釋掉,比如你不知道這句代碼以后有沒有用,就可以暫時用//來注釋。
再總結(jié)一遍:
//是只能注釋當(dāng)前行
回車后的下一行就不注釋了
/*是注釋許多行的
隨便你怎么回車它只認(rèn)你最后的*/ 如果只有/*沒有后面的會報錯的
btnsName.Add("Atk");
這里的“引號里的字母”和UNITY中UI命名是對應(yīng)的
switch
這里的switch當(dāng)然不是指某個游戲機。在這段代碼中
case "Atk": 就代表點擊了叫做Atk名字的按鈕后發(fā)生什么。
記得發(fā)生完了后一定需要添加一句break;否則會報錯
而default:的意思是,找不到所對應(yīng)的名字,就按照默認(rèn)情況來執(zhí)行。
關(guān)于switch的知識很多,不過決定暫時不教學(xué)。
在程序里還有個叫做print(1)這樣的模塊是輸出,在曾經(jīng)的教程中教學(xué)過,目的是為了讓你知道程序起到效果了,做個標(biāo)記。
而Debug.Log也是輸出的意思,和print的區(qū)別是這個會記錄到BUG日志里,玩家玩游戲出現(xiàn)的錯誤會被記錄進BUG日志。
這個代碼寫完后將其拖動到UI里,然后按UNITY里的播放鍵測試項目

測試的時候,我點一下“普攻”按鈕就會在控制臺里出現(xiàn)1,這是之前程序里寫好的。

好了本期的內(nèi)容就講完了,之后要想讓按了按鈕后做這樣那樣的事,其實也很簡單,直接把在之前的print代碼替換成你想要的功能就可以了。
后記
對于初學(xué)程序的你來說,UP只希望你能按照我的辦法復(fù)制粘貼并成功把內(nèi)容打印出來。
其實有很多東西的原理你可以自己試驗下,比如一開始我們說需要引用using UnityEngine.UI;
為什么要引用呢,你試試把using UnityEngine.UI;這一段刪除會發(fā)生什么。

程序中的確有許多基礎(chǔ)的內(nèi)容,所以UP依然會準(zhǔn)備一期教大家一些最最最入門的基礎(chǔ),這些基礎(chǔ)可能沒有程序書多,但是我相信絕對是在游戲制作中你會不斷的使用的部分。
本期的代碼你可以在項目的github中找到,在曾經(jīng)的一期里UP有寫過github的地址和用法。