激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

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

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

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

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

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

文/狂野之心

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

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

初識Unity2D

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

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

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

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

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

添加地面

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

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

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

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

第一個腳本

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

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

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

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

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

第一行代碼

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

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

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

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

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

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

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

if(transform.position.x 

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

第一個動畫

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

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

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

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

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定