【Unity3D】三欺抗、使用Playground框架輕松制作2D游戲

簡(jiǎn)單的介紹與起步

Unity的Playground是一個(gè)用來制作擁有物理引擎的2D游戲開發(fā)框架(framework),可以說非常適合初學(xué)者了恕沫,而且使用Playground框架制作2D游戲不需要編碼的工作监憎,單純?cè)赨nity的編輯器中就可以完成纱意,因?yàn)镻layground提供了很多但任務(wù)化的Components婶溯,這些Components很容易被結(jié)合起來使用,從而得到各種各樣的功能偷霉。

開始創(chuàng)建游戲

創(chuàng)建游戲的過程和上一節(jié)中的創(chuàng)建方式一樣迄委,只是要將游戲設(shè)置為2D,這里我們創(chuàng)建一個(gè)名為Playground2D的游戲項(xiàng)目类少。

創(chuàng)建一個(gè)2D游戲項(xiàng)目

引入Assets資源

為了使用Playground框架叙身,需要在Asset Store中搜索Unity Playground并下載引入其資源包,在頂部菜單欄的Window中選擇Asset Store即可進(jìn)入資源商店硫狞,搜索找到Unity Playground選擇下載(Download)然后引入(Import)信轿,再進(jìn)行一系列操作后一氣呵成。

注:在Asset Store下載的資源的默認(rèn)保存位置:C:\Users\你的用戶名\AppData\Roaming\Unity\Asset Store-5.x
(AppData這個(gè)文件夾一般情況下是隱藏的残吩。)

引入Playground框架
引入Playground框架
引入Playground框架
引入Playground框架
引入Playground框架

引入成功后财忽,可以看到Playground框架已經(jīng)為我們準(zhǔn)備了很多資源,主要的資源集中在Scripts泣侮,打開這個(gè)文件夾可以發(fā)現(xiàn)很多已經(jīng)寫好的可以直接使用的腳本即彪。

引入Playground框架后得到的Assets

創(chuàng)建游戲背景

在上一篇文章中出現(xiàn)的內(nèi)容將不詳細(xì)介紹,這里將SampleScene重命名為MainScene并保存于Scenes目錄下活尊,保留Main Camera隶校。

選擇Assets->Images->Backgrounds下的BG_Space背景圖漏益,拖動(dòng)到Hierarchy面板中。

引入背景圖片

在Inspector面板中的Sprite Renderer(著色器)中將起Draw Mode(繪制模式)改為Tiled(平鋪)深胳,還可以擴(kuò)大它的大小绰疤,這里將其X、Y的Size值均設(shè)置為100稠屠。然后展開Visibility Options(可視化選項(xiàng))峦睡,將Sorting Layer(排布布局)設(shè)置為Background(背景),這樣可以使得其他所有的GameObject均在其上方权埠。

設(shè)置背景參數(shù)

添加Player

選擇Assets->Images->Spaceships下的一個(gè)圖像作為Player榨了,這里選擇了一個(gè)紅色的飛船,并將其拖動(dòng)到Hierarchy面板中攘蔽。在Inspector面板中龙屉,為了讓飛船實(shí)現(xiàn)碰撞等物理效果,為其添加剛體屬性满俗,只不過這里我們選擇添加Rigidbody 2D转捕,即選擇Add Component,找到或者搜索該Component之后添加唆垃。
顯然五芝,我們需要將它的Gravity(重力)置零,為了不讓其在受到一小點(diǎn)點(diǎn)的力后運(yùn)動(dòng)起來停不下來辕万,將其Friction(摩擦力)設(shè)置一個(gè)合理的值枢步,這里設(shè)置為2,Angular Friction(角摩擦)可以保持0.05的預(yù)設(shè)值渐尿。

設(shè)置剛體參數(shù)

接下來就可以體會(huì)到Playground框架的強(qiáng)大之處醉途,因?yàn)樗鼮槲覀儨?zhǔn)備了各種各樣的腳本,運(yùn)用這些腳本可以直接實(shí)現(xiàn)很多游戲情景砖茸,而我們要做的只是將對(duì)應(yīng)的腳本添加給對(duì)應(yīng)的GameObject隘擎,并且設(shè)置腳本需要的public屬性的值,也就是在Inspector面板中設(shè)置這些值即可凉夯。
首先货葬,為了讓飛船能夠運(yùn)動(dòng)起來,為其添加一個(gè)推動(dòng)力的腳本:Push劲够,你可以選擇從Assets中的Scirpts目錄下找到這個(gè)腳本拖動(dòng)到Inspector面板中震桶,也可以在Add Component中直接搜索添加該腳本。然后更改Push Strength(推力大性俨住)為適當(dāng)?shù)闹的岫幔@里置為8,Axis(推力的方向)為Y。此時(shí)運(yùn)行游戲可以通過按下空格鍵使飛船運(yùn)動(dòng)起來淤堵。

添加Push腳本并設(shè)置參數(shù)

再添加Rotate腳本寝衫,這個(gè)腳本可以設(shè)置飛船的旋轉(zhuǎn),很明顯Type Of Control設(shè)置控制方式拐邪,這里選擇WASD控制慰毅,Speed選項(xiàng)控制旋轉(zhuǎn)速度,這里設(shè)置為2扎阶,因?yàn)槲也幌矚g操作太靈敏汹胃。

設(shè)置Rotate腳本參數(shù)

這里還給飛船增加了一點(diǎn)兒可愛的屬性,找到Assets->Prefabs->Particles下的P_Flame东臀,拖動(dòng)到Hierarchy成為飛船的子物體着饥,讓其跟隨飛船運(yùn)動(dòng),然后通過選擇和平移調(diào)整一個(gè)合適的位置加到飛船的尾部惰赋。

為飛船添加噴射火焰

設(shè)置Camera

設(shè)置Camera宰掉,改變其視野范圍(調(diào)整Frame Size,此處設(shè)置為10)赁濒,并添加一個(gè)Follow腳本使其固定跟隨一個(gè)物體轨奄,直接點(diǎn)擊Camera中的Add Camera Follow script即可添加,然后將我們的Player也就是飛船拖動(dòng)到Target作為其參數(shù)即可拒炎。

設(shè)置Camera自動(dòng)跟隨腳本

注:如果想要回到最原始的Components挪拟,可以在頂部菜單欄的Playground下選擇Turn Playground Off

可以設(shè)置關(guān)閉Playground框架

添加障礙物

選擇Assets->Images->Asteroids下的一個(gè)石頭圖像作為障礙物,同樣需要為其添加Rigidbody 2D屬性击你,修改其中的值玉组。
在物理學(xué)中我們知道,如果一個(gè)物體沒有受到任何摩擦力果漾,在其受到一個(gè)力從而獲得一個(gè)初速度后會(huì)一直以這個(gè)速度運(yùn)動(dòng)下去球切,所以為了避免這種情況的發(fā)生谷誓,我們還是需要為其Friction賦予一個(gè)合理的值绒障。

添加障礙物的剛體屬性

添加Collider

為了有碰撞效果,為飛船和石頭均添加Collider屬性

添加障礙物的Collider屬性

此時(shí)運(yùn)行游戲捍歪,會(huì)發(fā)現(xiàn)飛船可以撞動(dòng)石頭

添加障礙物后測(cè)試運(yùn)行成功

添加計(jì)分機(jī)制

為飛船添加一個(gè)Health System(健康系統(tǒng))户辱,其實(shí)就是我們常說的這個(gè)東西還有多少滴血,直接添加Health System腳本就行糙臼,可以看到庐镐,我們可以預(yù)設(shè)生命值,這里默認(rèn)為3

添加生命值系統(tǒng)

飛船碰撞到了石頭变逃,飛船的生命值就減少一必逆,這需要我們?yōu)槭^添加Modify Health腳本,然后看到有兩個(gè)可選參數(shù),第一個(gè)Destroy When Activated(起作用時(shí)銷毀)如果選中的話就會(huì)在石頭起到“減血”作用后銷毀石頭名眉,這里不選中粟矿,第二個(gè)Health Change即為對(duì)生命值的變化,這里設(shè)置為-1很合理损拢。

設(shè)置石頭的減生命值功能

添加UI

為了讓生命值和分?jǐn)?shù)顯示出來陌粹,我們?yōu)镠ierarchy目錄添加Assets下的Prefabs下的UserInterface,UI自動(dòng)顯示在了游戲界面中福压。

添加UI

為了讓Untiy清楚生命值和分?jǐn)?shù)都記錄的是誰的掏秩,這里需要為Player添加一個(gè)Player的Tag,添加Tag已經(jīng)在上一篇中詳細(xì)地提到了荆姆。

添加Player的Tag

此時(shí)運(yùn)行游戲蒙幻,會(huì)在你的生命值消耗完時(shí)顯示Game Over

運(yùn)行游戲檢測(cè)游戲結(jié)束UI

添加勝利條件

到什么時(shí)候才算勝利呢?UI Script處可以設(shè)置胆筒,比如這里默認(rèn)的為一個(gè)玩家杆煞、計(jì)分制、5分為勝利:

添加勝利條件

創(chuàng)建打擊物體

為了不讓我們的飛船顯得太過于脆弱腐泻,為其添加發(fā)射激光的功能决乎。

這里選擇Assets->Images->Projectiles下的LasersMid作為發(fā)射的激光,拖動(dòng)到Hierarchy下派桩。

為其添加Rigidbody 2D和capsule Collider 2D(膠囊狀的碰撞器)使其擁有碰撞屬性构诚,正如上一篇中所提到的,還需要選中Is Trigger一項(xiàng)铆惑。

基本的Components

Playground框架還為我們準(zhǔn)備了Bullet(子彈)腳本使其在特定條件下產(chǎn)生一個(gè)該對(duì)象的引用范嘱,即發(fā)射一發(fā)子彈。
添加了Bullet腳本后的激光束员魏,將其拖動(dòng)回Assets下的Prefabs目錄下成為一個(gè)預(yù)設(shè)體丑蛤。

添加Bullet腳本

現(xiàn)在有了子彈,還需要一個(gè)發(fā)射子彈的機(jī)槍撕阎,我們?cè)陲w船下新建一個(gè)空的子物體受裹,將其命名為BulletShooter,將其拖動(dòng)至飛船的頂部也就是發(fā)射的地方虏束。

創(chuàng)建一個(gè)“機(jī)槍”

為剛創(chuàng)建的BulletShooter添加一個(gè)Object Shooter的腳本棉饶,在Inspector面板中設(shè)置其參數(shù)。
Prefab To Spawn(要發(fā)射的預(yù)設(shè)體)當(dāng)然是拖動(dòng)我們已有的Prefab下的子彈預(yù)設(shè)體到這里作為參數(shù)镇匀,Key To Press是發(fā)射的按鍵照藻,這里設(shè)置為W鍵,Creation Rate是產(chǎn)生的速度汗侵,這里設(shè)置為0.2幸缕,Shoot Speed為發(fā)射速度群发,這里設(shè)置為10,shoot Direction為發(fā)射方向发乔,顯然是沿Y方向發(fā)射也物,所以將X設(shè)為0,Y設(shè)為1列疗。

設(shè)置Shooter腳本

射擊中石頭時(shí)石頭就需要消失并且我們要得分滑蚯,所以為石頭再添加一個(gè)腳本:Destory For Points,這個(gè)腳本使得物體被擊中時(shí)銷毀并為我們的Player增加分?jǐn)?shù)抵栈,Points Worth即其所價(jià)值的分?jǐn)?shù)告材,這里我們?cè)O(shè)置為0,因?yàn)椴⒉幌朐趽糁惺^后得到分?jǐn)?shù)古劲。

被擊中時(shí)銷毀物體

添加收集體

為游戲添加一些在太空中漂浮的外星人斥赋,用我們駕駛的飛船去收集這些外星人,收集到的外星人就進(jìn)入飛船(消失)产艾,看起來很簡(jiǎn)單了疤剑。

選擇Assets->Images->Creatures下的Alien1作為外星人,顯然它需要擁有以下的Component:

  1. Rigidbody 2D:剛體屬性
添加剛體屬性
  1. Polygon Collider 2D:碰撞機(jī)屬性
添加碰撞機(jī)屬性
  1. Auto Rotate:自動(dòng)旋轉(zhuǎn)
添加自動(dòng)旋轉(zhuǎn)屬性

再添加一個(gè)Collectable(可收集的)腳本闷堡,這個(gè)腳本表示這是一個(gè)可以被收集的物體隘膘,Points Worth表示收集到后得到的分?jǐn)?shù),這里默認(rèn)1不變杠览。

添加Collectable腳本

這時(shí)候運(yùn)行游戲看一下會(huì)發(fā)現(xiàn)收集外星人后Score會(huì)增加弯菊。

收集外星人Score增加

完善游戲

最有就很簡(jiǎn)單了,對(duì)石頭和外星人進(jìn)行復(fù)制(Duplicate)踱阿,然后任意擺放管钳,如何設(shè)計(jì)游戲關(guān)卡就是見仁見智的問題了,為了能夠勝利软舌,要使得外星人的個(gè)數(shù)多于在UI中設(shè)計(jì)的勝利條件的數(shù)值哦才漆。

完善游戲

關(guān)于文檔

在引入Playground框架后,可以在Assets文件夾下發(fā)現(xiàn)Documentation目錄佛点,該目錄有關(guān)于Playground框架的每一個(gè)腳本的具體功能和參數(shù)的設(shè)置方法醇滥,非常值得參考。

參考文檔

Cheatsheets

Cheetsheets
Cheetsheets
Cheetsheets
Cheetsheets
Cheetsheets
Cheetsheets
Cheetsheets

參考資料:https://unity3d.com/learn/tutorials/s/unity-playground

本節(jié)內(nèi)容的完整官方教程視頻(英文無字幕)與官方文檔分享:https://pan.baidu.com/s/1MyITuPbK6_zO8rtK_i81pg 提取碼:7xti


轉(zhuǎn)載請(qǐng)注明出處恋脚,本文永久更新鏈接:https://blogs.littlegenius.xin/2019/02/20/Unity中使用Playground框架輕松制作2D游戲/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腺办,一起剝皮案震驚了整個(gè)濱河市焰手,隨后出現(xiàn)的幾起案子糟描,更是在濱河造成了極大的恐慌,老刑警劉巖书妻,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件船响,死亡現(xiàn)場(chǎng)離奇詭異躬拢,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)见间,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門聊闯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人米诉,你說我怎么就攤上這事菱蔬。” “怎么了史侣?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拴泌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我惊橱,道長(zhǎng)蚪腐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任税朴,我火速辦了婚禮回季,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘正林。我一直安慰自己泡一,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布觅廓。 她就那樣靜靜地躺著瘾杭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哪亿。 梳的紋絲不亂的頭發(fā)上粥烁,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音蝇棉,去河邊找鬼讨阻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛篡殷,可吹牛的內(nèi)容都是我干的钝吮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼板辽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼奇瘦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劲弦,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤耳标,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后邑跪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體次坡,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呼猪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了砸琅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宋距。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖症脂,靈堂內(nèi)的尸體忽然破棺而出谚赎,到底是詐尸還是另有隱情,我是刑警寧澤诱篷,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布沸版,位于F島的核電站,受9級(jí)特大地震影響兴蒸,放射性物質(zhì)發(fā)生泄漏视粮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一橙凳、第九天 我趴在偏房一處隱蔽的房頂上張望蕾殴。 院中可真熱鬧,春花似錦岛啸、人聲如沸钓觉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荡灾。三九已至,卻和暖如春瞬铸,著一層夾襖步出監(jiān)牢的瞬間批幌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工嗓节, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荧缘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓拦宣,卻偏偏與公主長(zhǎng)得像截粗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸵隧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容