亚洲AV免费看深爱成人|日韩av另类一级特黄片在线|中国免费一级黄片|国产av一二三区|亚洲有码AV在线|久久亚洲国产日韩欧美|成人免费AV网站|婷婷一区综合一区|亚洲AV无码导航|高级欧美成人网站

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

unity3d/2d手機(jī)游戲開發(fā)(Unity2D 開發(fā) + UGUI 系列教程(一))

發(fā)布時(shí)間:2023-11-27 07:28:38 瀏覽量:318次

?Unity2D 開發(fā) + UGUI 系列教程(一)

unity3d/2d手機(jī)游戲開發(fā)(Unity2D 開發(fā) + UGUI 系列教程(一))

文/狂野之心

因?yàn)閁nity5免費(fèi)策略推出,2D功能也大大增強(qiáng),于是轉(zhuǎn)投Unity。在朋友鼓勵(lì)下,推出Unity教程,希望能幫助那些想提高2D游戲開發(fā)效率的朋友們。需要注意的是,此系列教程都會(huì)使用5.2.0版本(目前最新5.2.2)進(jìn)行開發(fā)。

那么我們就開始吧!我會(huì)做一些很常見的比較簡單的小游戲,幫助大家從零開始,首先來做一個(gè)跑酷小游戲。

初識(shí)Unity2D

創(chuàng)建新項(xiàng)目,名稱我用的是JustRun。一定注意,項(xiàng)目類型有3D和2D之分,選擇2D即可。點(diǎn)擊創(chuàng)建,就進(jìn)入了Unity主界面。

這四個(gè)面板是最常用的,我只進(jìn)行大致的解釋,后面用得多了,大家自然會(huì)慢慢理解。面板1是游戲?qū)ο箨P(guān)系面板,直觀地表示各個(gè)游戲?qū)ο笾g的父子關(guān)系。面板2是屬性面板,用來展示所選對(duì)象的各個(gè)組件和屬性。面板3是場景編輯器,大量的場景編輯都需要在里面完成。面板4是工程面板,用來查看所有的資源和腳本。當(dāng)然,如果大家的面板結(jié)構(gòu)和我不一樣,可以自行對(duì)照,也可以拖拽標(biāo)簽欄移動(dòng)各個(gè)面板到合適的位置。

我們都知道,很多游戲引擎或者說框架,都是純代碼來開發(fā),游戲長什么樣,都是運(yùn)行起來才知道。Unity是所見即所得開發(fā),是我個(gè)人偏愛的一種開發(fā)形式,非常的直觀。

光說不練假把式,在電腦里隨便找一張圖片,比如我這張。

把圖片從文件夾里拖拽到工程面板,注意要在Assets文件夾中哦~然后拖拽到左側(cè)的關(guān)系面板。這時(shí),屏幕正中央就會(huì)出現(xiàn)一只小萌物了。點(diǎn)擊編輯器頂欄的播放按鈕,游戲就會(huì)執(zhí)行起來了,再次點(diǎn)擊退出播放模式(細(xì)心的朋友會(huì)發(fā)現(xiàn),進(jìn)入播放模式,Scene選項(xiàng)卡會(huì)切換到Game選項(xiàng)卡)。

添加地面

Command+s或者Ctrl+s,我們保存當(dāng)前場景到Assets文件夾中,起名為Main。

由于目前我還不知道如何在Unity中創(chuàng)建二維形狀,所以你們只能用PS做一個(gè)純色地面了,而我要再次使用一個(gè)酷炫的素材,哈哈哈哈。

老套路,將素材添加到場景中,等等!主角被擋住了?

我們?cè)陉P(guān)系面板中,選中地面,然后看屬性面板,Transform面板是一個(gè)游戲?qū)ο蟮母鞣N體位(你沒看錯(cuò)……)屬性,可以設(shè)置三個(gè)維度的坐標(biāo)、角度和縮放。經(jīng)過我的火眼金睛觀察,設(shè)置地面的Position里的Y值為-1.3剛剛好。

第一個(gè)腳本

那么該讓主角動(dòng)起來了,It's time to go! 這一切必須借助腳本來完成,不過很可惜第一個(gè)腳本不是Helloworld。我先談?wù)勀_本語言的選擇:作為一個(gè)曾經(jīng)的JS程序員,我很慶幸自己選擇了C#進(jìn)行開發(fā),雖然我當(dāng)時(shí)對(duì)C#一無所知。根據(jù)我自己的使用經(jīng)驗(yàn),JS是一種弱類型語言,游戲客戶端開發(fā)需要大量使用字典、數(shù)組、鏈表等等,明確知道一個(gè)鏈表里存的是什么鬼,非常的必要。如今我C#也使用的很嫻熟了,我都不敢想象如果選擇了JS現(xiàn)在的處境會(huì)怎么樣,代碼復(fù)雜度高了以后,JS非常的難以維護(hù)。

在Project面板中,右鍵Create,選C# Script,命名為ScrollGround。這個(gè)腳本我們掛在地面對(duì)象上,讓地面向后滾,這樣主角就被迫向前跑了,哈哈哈哈。

unity3d/2d手機(jī)游戲開發(fā)(Unity2D 開發(fā) + UGUI 系列教程(一))

雙擊腳本,你將打開一個(gè)MonoDevelop編輯器,public class后面的類名如果不是ScrollGround,就改成這個(gè)名字?;氐経nity編輯器,將腳本拖拽到地面對(duì)象的屬性面板,如圖:

然后我們回到MonoDevelop編輯器,這里是用來編寫腳本的地方。這個(gè)腳本將決定地面對(duì)象的一切行為,全權(quán)控制。Start函數(shù)是這個(gè)對(duì)象第一次出現(xiàn)在場景中時(shí)會(huì)調(diào)用的函數(shù),做一些初始化功能,Update函數(shù)每一幀都會(huì)執(zhí)行一次,英文注釋里都有解釋,MonoBehavior是Unity的游戲?qū)ο蠡A(chǔ)類,繼承這個(gè)才可以用這些函數(shù)。

第一行代碼

我們來一點(diǎn)點(diǎn)嘗試腳本的編寫吧,即使不會(huì)C#也沒關(guān)系,對(duì)著教程,自己多練習(xí),慢慢就會(huì)熟悉的。

Update函數(shù)中,加入下面這一行代碼:

transform.position -= new Vector3(Time.deltaTime, 0, 0);

我一點(diǎn)點(diǎn)來解釋:transform對(duì)應(yīng)的是(掛載該腳本的游戲?qū)ο蟮模傩悦姘謇锏腡ransform欄,所以在腳本中修改position就相當(dāng)于在面板里修改position。后面的這個(gè)是一個(gè)三維數(shù)組對(duì)象,Time.deltaTime是上一幀到這一幀的間隔時(shí)間,非常小的一個(gè)數(shù)值。在坐標(biāo)值里減去一個(gè)很小的x軸位移,那么這個(gè)對(duì)象會(huì)每一幀向左移動(dòng)一點(diǎn)點(diǎn)?;氐経nity,播放一下游戲,果然如此!大人真乃神人也!

光滾動(dòng)還不夠,地面好像有點(diǎn)短。沒關(guān)系,我們進(jìn)入U(xiǎn)nity編輯器,從project面板中再拖拽一個(gè)地面對(duì)象到關(guān)系面板中,并設(shè)置其x坐標(biāo),掛載ScrollGround腳本,最終如下:

這時(shí)執(zhí)行游戲,就會(huì)發(fā)現(xiàn)地面變長了。但是跑著跑著,還是不夠用,怎么辦呢?我們?nèi)ツ_本里重置一下前一塊地皮就可以了。

進(jìn)入MonoDevelop,在剛才的那一行代碼下面添加下列代碼:

if(transform.position.x 

這里的11.36是剛才我們?cè)诰庉嬈髦锌吹降哪莻€(gè)橫坐標(biāo)數(shù)值,當(dāng)?shù)孛嬉苿?dòng)到左側(cè)這個(gè)距離的時(shí)候,將其位置重置到最右側(cè),這樣就可以無限循環(huán)了。C#中所有的浮點(diǎn)數(shù),都必須帶上f后綴?,F(xiàn)在我們?nèi)鼍爸胁シ乓幌?,雖然還有點(diǎn)瑕疵,但是基本實(shí)現(xiàn)了功能了。大家可以通過調(diào)整地面長度或者增加第三塊地面,來使效果更加完美,我這里就不贅述了。

第一個(gè)動(dòng)畫

回到Unity編輯器,現(xiàn)在我們先導(dǎo)入另外幾張圖片,然后選中所有的素材,一共是6張跑步動(dòng)畫幀,拖拽到關(guān)系面板中主角對(duì)象身上,然后主角對(duì)象上就創(chuàng)建出了一個(gè)Animator組件。如圖:

這個(gè)組件也會(huì)放在素材所在的文件夾里,看project面板中會(huì)多出一個(gè)帶播放按鈕的對(duì)象和一個(gè)流程圖一樣的對(duì)象。左邊的是剛才形成的動(dòng)畫片段,右邊的是主角對(duì)象的動(dòng)畫控制器。動(dòng)畫分為動(dòng)畫片段和控制器兩部分,片段掛在控制器中,由控制器決定播放哪一段,這兩部分是分開的。如果操作無誤,下面播放游戲,就能看到主角跑起來啦~!哦妹子英!還是很簡單的吧。

下一步我會(huì)繼續(xù)教大家如何做出跳躍的效果。敬請(qǐng)期待!

unity3d/2d手機(jī)游戲開發(fā)(Unity2D 開發(fā) + UGUI 系列教程(一))

熱門課程推薦

熱門資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話暢通!
確定