從零開始的做游戲(二)——使用git保護(hù)代碼
開篇說明:上一篇文章中還在說明關(guān)于unity的腳本JS和C#問題,而在unity最新版里已經(jīng)不再支持JS代碼了,所以以后寫unity腳本都要使用C#來撰寫,實(shí)際上C#也的確擁有太多的優(yōu)勢,雖然可能某些功能要比JS多寫幾行代碼。
什么是git
這次的副標(biāo)題比較奇怪,本次教學(xué)開始之時(shí)所講的并不是開始正式的寫代碼,而是一段好像不太明白的描述,git那是什么。
我們通常有遇到過這樣的問題,比如在寫文檔的時(shí)候,寫著正嗨之時(shí),突然程序崩潰了,你又沒有按保存,甚至還有更嚴(yán)重的問題,不小心突然硬盤壞了,此時(shí)你花了1-2年時(shí)間寫的項(xiàng)目代碼就隨著硬盤的損壞消失的無影無蹤,如果遇到這種情況,相信這肯定要成為人生的陰影。
所以,在正式寫代碼前,UP會(huì)首先讓各位解決掉這個(gè)問題,雖然這種風(fēng)險(xiǎn)發(fā)生的可能性非常低,但是總還是有那么一點(diǎn)可能,當(dāng)然除此之外,還有其他的作用。
git的原理概念這里也就不多介紹,簡單的理解就是git這個(gè)工具可以將你的代碼存儲(chǔ)在“云服務(wù)器”里,不僅可以保護(hù)你的代碼不會(huì)因?yàn)楸镜赜布栴}而丟失,還可以將代碼分享給其他人,甚至還可以自動(dòng)為代碼保存不同的版本,在你修改代碼后,你修改之前的代碼依然可以找回來。
這里介紹2個(gè)提供git服務(wù)的網(wǎng)站:
1. 國外的,也算是最知名的開源社區(qū)github
2. 國內(nèi)的,可以免費(fèi)使用并且閉源的coding
關(guān)于開源和閉源,簡單說則是,開源軟件會(huì)把代碼公開給別人看,閉源則反之。
不過UP也說過,鍛煉各位的自學(xué)能力,所以至于git怎么安裝,怎么使用等問題各位自行研究吧,不過UP也會(huì)做一些指點(diǎn),讓各位少走彎路:
git的操作很多時(shí)候都是使用命令來執(zhí)行的,當(dāng)然也不必完全使用命令來執(zhí)行,也可以通過客戶端來操作git,其中g(shù)ithub有官方客戶端,coding則可以使用一款叫做sourcetree的軟件。
總之,各位記得一定要用git來存儲(chǔ)你的代碼。
第一次的存儲(chǔ)
將你的代碼存儲(chǔ)在git之前,首選需要在本地建立git庫,用人類的語言來描述就“選擇你想同步的文件夾”
UP在github上創(chuàng)建好了個(gè)項(xiàng)目叫YZTEST,此時(shí)看到了網(wǎng)頁是這樣顯示的

實(shí)際上最簡單的辦法是先安裝github桌面客戶端,然后點(diǎn)擊上圖的set up in Desktop,之后選擇你想同步的文件夾就好了。
但是git不僅僅是github,比如coding,還有未來可能你會(huì)用到自己架設(shè)的git環(huán)境等,所以還是要教會(huì)大家用一種非傻瓜化的辦法,github的客戶端雖然很好用,但是僅支持在github用。
所以不用客戶端要怎么玩,最簡單的做法就是選擇存儲(chǔ)的文件夾,點(diǎn)右鍵,選擇Git Bash Here,選擇后會(huì)打開一個(gè)命令行窗口。

如果你在文件夾里點(diǎn)右鍵找不到Git Bash Here,那說明你沒有安裝git,請(qǐng)自行搜索進(jìn)行安裝

安裝好后,在命令行中復(fù)制粘貼上上上圖中有個(gè)紅框框住的部分,粘貼到命令行里,然后這樣就可以將git文件夾同步了。
同步后,每次修改代碼后打開客戶端會(huì)自動(dòng)判斷有哪些代碼做了修改。
選擇同步的文件,然后進(jìn)行描述,最后選擇commit即提交。

有時(shí)候,這種提交僅僅是同步了本地,并沒有同步到git服務(wù)器上,這種時(shí)候點(diǎn)擊一下同步按鈕即可,不過一般情況下很少會(huì)出現(xiàn)本地提交不同步到服務(wù)器的情況,因?yàn)橹灰阍O(shè)置好了,點(diǎn)擊提交的同時(shí),客戶端會(huì)自動(dòng)向服務(wù)器同步。

開源與項(xiàng)目的安全
眾所周知的道德問題,現(xiàn)在個(gè)人作者公開發(fā)布到互聯(lián)網(wǎng)上的作品總愛被沒道德的人偷掉,甚至你聲明了,這篇文章僅發(fā)布在bilibli網(wǎng)站,禁止轉(zhuǎn)載,也有那些不道德的人會(huì)轉(zhuǎn)載,甚至還把這句聲明一起復(fù)制過去,最后作者也沒有辦法譴責(zé)于別人,這很無奈但也沒辦法。
甚至還有更過分的情況,比如我將游戲完全開源并制作完成,不道德的人可以直接將我的項(xiàng)目工程拿走發(fā)行,甚至他們還自己注冊版權(quán),最后原作者去譴責(zé)的時(shí)候發(fā)現(xiàn)一臉懵逼,版權(quán)都被別人注冊走了。
所以這些現(xiàn)實(shí)因素也導(dǎo)致了為什么很多程序員不愿意分享自己的技術(shù),也不愿意做開源軟件,所以有沒有發(fā)現(xiàn),各位經(jīng)常找到的教程都是英文版的或者國外作者做的呢。
不過UP認(rèn)為在足夠保護(hù)好自己時(shí),還是可以為大家分享技術(shù),所以UP在做這次教程的時(shí)候,也就為防范不道德問題做了一些準(zhǔn)備,所以這次項(xiàng)目是以“部分開源”的形式展示給各位的,這樣做還有一個(gè)目的則是,希望各位大佬,也要學(xué)會(huì)分享的同時(shí)保護(hù)自己的利益不被侵犯。
那么部分開源是怎么做的呢,其實(shí)很簡單,一部分內(nèi)容存儲(chǔ)在github開源,另一部分用coding閉源來存儲(chǔ)。
做一款手機(jī)游戲
UP計(jì)劃制作一款可以運(yùn)行在手機(jī)上的游戲,所以根據(jù)計(jì)劃來說,準(zhǔn)備制作一款豎屏的游戲。
所以首先需要調(diào)整屏幕比例,其實(shí)這個(gè)很簡單。


UP建議各位個(gè)人開發(fā)者開發(fā)游戲主要還是以720分辯率的畫質(zhì)來做標(biāo)準(zhǔn),其實(shí)這個(gè)標(biāo)準(zhǔn)的好處則是性價(jià)比高,因?yàn)樵诖蟛糠?080P的手機(jī)上也不會(huì)顯得畫面很模糊,以及繪制圖像的時(shí)候美術(shù)也可以相對(duì)不那么精細(xì)。
此時(shí)可能你會(huì)覺得這個(gè)game屏幕背景是藍(lán)色的很不爽,能不能改成黑色或者白色這種比較舒服的色彩,其實(shí)這個(gè)也很簡單,我們試著改成白色吧。


相信做到上圖的時(shí)候,各位就已經(jīng)知道屏幕底色如何修改了。
使用UGUI來做UI界面
UGUI是什么,其實(shí)就是U3D為自己的UI組件起了個(gè)名字叫UGUI而已,看起來讓你覺得非常的高大上,因?yàn)閡nity中還有許多第三方的UI插件,比如NGUI之類的,所以起名的目的就是為了辨識(shí)。
UP推薦用UGUI來做游戲里的UI,因?yàn)樵b的,兼容性就是好!
在Hierarchy面板中,點(diǎn)擊右鍵可以看到一堆創(chuàng)建內(nèi)容,其中有一條是UI,指向進(jìn)入后可以看見各種UI組件(這里面的組件就是UGUI了)

我們試著創(chuàng)建一個(gè)Text組件,此時(shí)屏幕里是這樣的。

大家需要記住的是,UI內(nèi)容一定要包含在Canvas這個(gè)里面,不然會(huì)顯示不出來,具體是什么原因我們會(huì)在以后遇到的時(shí)候來講述
至于最下面的EventSystem是什么大家也可以不用管,總之也記得,需要有這個(gè)組件的情況下,UI才可以正常使用,所以不要隨便刪除。
接下來我們試著修改下Text組件的信息

修改后可能你會(huì)發(fā)現(xiàn),怎么文字之前還在游戲框里顯示,現(xiàn)在就不見了,那是因?yàn)槟阕煮w大小太大,超出了Text組件height的限制,這時(shí)候需要改height,這個(gè)問題是UP初用unity時(shí)遇到的一個(gè)坑,后來才發(fā)現(xiàn)原來解決起來是如此簡單。

可能還有小伙伴注意到了,這里的字體使用的是Arial,實(shí)際上使用這個(gè)字體時(shí),你會(huì)發(fā)現(xiàn)不同的設(shè)備上看著的字體是不一樣的,實(shí)際上也就是隨著你的設(shè)備設(shè)定字體而改變了,使用這個(gè)字體做游戲可以避免“字體版權(quán)”問題的風(fēng)險(xiǎn),缺點(diǎn)就是可能在某些手機(jī)上不太好看。

這個(gè)時(shí)候,我們調(diào)整了下Text組件的位置,你所看見的游戲畫面就是這樣的

讓項(xiàng)目運(yùn)行在你的手機(jī)上
UP畢竟也是過來人,所以在做項(xiàng)目的時(shí)候最感興趣的事情是怎么讓我的游戲在手機(jī)上跑起來。
所以在寫游戲之前還是首先讓各位爽一把,教會(huì)大家如何裝b給,別人看你的手機(jī)時(shí)自豪的說:你看這個(gè)app是我自己做的。
不過現(xiàn)在UP只教學(xué)安卓系統(tǒng)如何處理,因?yàn)镮OS系統(tǒng)比較麻煩,還需要一臺(tái)蘋果的機(jī)器。

首先進(jìn)入build settings界面,具體進(jìn)法是點(diǎn)擊File - build settings(下圖箭頭標(biāo)注了file的位置)

此時(shí)選擇安卓并切換代碼為安卓形式

如果此時(shí)你看見的界面和這個(gè)不一樣,而是讓你download,那說明你的unity沒有安裝安卓組件,安裝即可。
切換到安卓后,點(diǎn)擊上圖的Player Setting按鈕,然后找到下圖所示的位置,修改項(xiàng)目名字,修改辦法是com.團(tuán)隊(duì)名字.項(xiàng)目名,使用默認(rèn)的發(fā)布會(huì)報(bào)錯(cuò)。

安卓環(huán)境的問題
發(fā)布安卓的時(shí)候需要安裝SDK和JDK,可以通過設(shè)置里的download進(jìn)行安裝

這個(gè)設(shè)置的位置見下圖,具體的安卓環(huán)境如果配置,大家可以搜索“unity 安卓發(fā)布”來找到答案

總結(jié)
通過上面的介紹,相信真正初次學(xué)習(xí)的你會(huì)遇到很多坑,比如安卓發(fā)布時(shí)連續(xù)報(bào)錯(cuò)、或者其他的問題,需要你花費(fèi)點(diǎn)時(shí)間來研究,不過UP寫這個(gè)系列也就是這樣的目的,什么都教會(huì)了會(huì)產(chǎn)生依賴情緒,更多的是靠搜索自學(xué),UP的技能可是一路靠自己,連指點(diǎn)的人都沒有。
最后,項(xiàng)目的相關(guān)代碼會(huì)存儲(chǔ)在github.com/suxsho/YZTEST這個(gè)網(wǎng)址中,不過這里僅有代碼,沒有其他的文件,諸如圖片音效等,畢竟UP也說過為了安全所以只做部分開源項(xiàng)目。
(所以B站什么時(shí)候要不要再開個(gè)git服務(wù)啊【x】)