最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何在Unity中開發(fā)一個類FEZ的游戲(二)

2021-11-18 16:03 作者:皮皮關(guān)做游戲  | 我要投稿

By Greg Matsura


(譯者 @Kohlrabic )

原文地址:

http://gregandaduck.blogspot.com/2014/12/normal-0-false-false-false-en-us-x-none.html

在這節(jié)教程中,我們將會從設(shè)置精靈圖角色開始。

來認識一下我們的2D角色,Gato。我在下面提供了這個小家伙的精靈圖:

保存這個精靈圖以供使用

將這張圖片添加到你的工程并如下修改importsetting。設(shè)置SpriteMode 為Multiple ,Unity將會識別我們的圖片為一個包含多個精靈圖的類型。每張精靈圖由16x16的像素構(gòu)成,所以我們在 Pixels Per Unit 選項中填入16。

具體設(shè)置如下圖所示:

在左上角點擊編輯精靈圖按鈕,點擊下拉菜單中的Slice 選項,確保 Type 選項被設(shè)置為 Automatic 模式(如果圖片背景沒有變成透明就是圖片格式選錯了,改成自動就ok了)。

點擊 Slice ,Unity 會自動識別精靈圖點擊Apply并關(guān)閉窗口。Unity 會自動將精靈圖裁剪,并依次以 _x的后綴進行命名。

創(chuàng)建一個空物體并命名為 Player 。將FezSpriteSheet_0 精靈圖拖拽到我們的空物體上并將它的位置設(shè)置為(0,0,0)。

將FezSpriteSheet_0 重命名為 Sprite。

給Sprite 添加 Animator 組件,取消 Apply Root Motion 的選項,選中Sprite ,打開 Animation 窗口。

選擇下拉菜單選擇 Create a New Clip 。將新的片段命名為 Idle。并將_0,_1,_2 精靈圖添加進時間線內(nèi)。

現(xiàn)在我們創(chuàng)建一個新的片段并命名為 Walk Right。并將精靈圖_3,_4,_5,_6添加進時間線內(nèi)。

最后創(chuàng)建一個新的片段命名為 Walk Left。將精靈圖_7到_10添加到時間線內(nèi)。

下一步設(shè)置 Animator 使我們的動畫在正確的時機播放。在Animator中創(chuàng)建一個整數(shù)參數(shù)(Integer),命名為Horizontal 。如圖正確地連接各種狀態(tài)。右鍵狀態(tài)框即可在各種狀態(tài)間連線。

如圖,關(guān)閉Atomic ,這個選項代表動畫過渡,我們不需要這種效果所以關(guān)閉它。在Condition 設(shè)置中,我們在下拉菜單中選擇剛剛創(chuàng)建的Horizontal參數(shù)。向左走的動畫我們設(shè)置它的值為-1,向右走的值設(shè)置為1。同理,靜止的值設(shè)置為0。

通過Horizontal參數(shù)來達到動畫的切換

此時如果我們按下Play , Gato將會為我們獻上一段小小的舞蹈。


現(xiàn)在出現(xiàn)了一點問題,我們的游戲場景漆黑一片,整個畫面沒有層次感,Gato看起來像是懸浮在空中一樣。于是我們需要做一點小小的美化工作。我們接下來要在游戲中添加光源。在場景中添加一個方向光源,將它設(shè)置為Player的子物體。將光源的Transform參數(shù)重置,位置設(shè)為(0,0,-15),這樣它就不會疊加在我們的Gato身上了(思考一下這里我們?yōu)槭裁磳⒐庠丛O(shè)置為玩家的子物體?)。

接下來我們就要幫我們的Gato添加移動的腳本了:

這段代碼將會監(jiān)視A和D鍵,來控制我們的橫向運動。初始狀態(tài)Unity將橫向定義為了方向鍵。通過每幀監(jiān)視按鍵的動作,我們可以知道玩家是否按下了這些按鍵,并且會影響我們之前設(shè)置的Horizontal的數(shù)值??崭矜I也被監(jiān)視著,每當我們按下空格鍵,一個協(xié)程將會開始。通過協(xié)程,將會等待0.35秒將我們的flag重置為false。這個flag用來判定當前是否允許玩家向前移動。一個玩家控制器就是用來在世界范圍內(nèi)通過簡單的移動函數(shù)來讓角色在世界坐標系中移動。將控制器添加到Player 上。如圖設(shè)置好腳本的選項。你可以隨意調(diào)節(jié)移動速度,重力和起跳高度,來改變玩家的移動特性。將玩家的高度設(shè)置為1,半徑設(shè)置為0.5。

根據(jù)需求來調(diào)節(jié)參數(shù)

現(xiàn)在我們已經(jīng)能夠在2D維度下進行移動了,我們需要調(diào)整幾個選項來進一步提高我們游戲的畫面表現(xiàn)力。首先,我們來對相機做出一些提升。在3D游戲中我們一般使用透視相機,但是對于我們想要的2D場景效果不是那么可取了。改變相機的投影模式(projection)為Orthographic ,正交相機將會忽略3D場景的深度值,屏幕上顯示的物體仿佛都在一個平面上。我們需要攝像機跟隨我們的玩家,最簡單的方法就是將攝像機設(shè)置為Player的子物體。

接下來為場景添加一個天空盒,使我們的游戲擁有一個好看的背景。右鍵Assets文件夾,導(dǎo)航至Import Package ,然后選擇Skyboxes。Unity將會自動為我們安裝一些assets 以供使用。

在引擎上方導(dǎo)航欄選擇Edit→Render Settings 。選擇一個你喜歡的天空盒添加到SkyboxMaterial欄目中。

現(xiàn)在我們的天空盒就緒了。接下來我們來解決幾個小的細節(jié)問題。在我的項目中,小貓依舊沒有正常地著地,如果你也有同樣的問題,你或許需要將它正確地設(shè)置在地面上。如下圖調(diào)整精靈圖y軸坐標使小貓正確著地(譯者音:另一種方法是手動將精靈圖的中心點設(shè)置在中心位置即可)。

現(xiàn)在游戲慢慢有了雛形,我們已經(jīng)搭建好了一個簡單的2D平臺。但是,現(xiàn)在如果我們從平臺上掉落的話,我們將會無限下落。為了解決這一問題我們將會寫一段簡單的代碼,當我們的Gato掉落到一定深度時,使它返回到第一個平臺上面。腳本如下:

這段代碼的功能是通過collider實現(xiàn)的 ,將目標位置設(shè)置collider,將它的IsTrigger選項打開。此時當一個攜帶有該腳本的物體與它相接觸時,另一個物體將會被傳送到設(shè)置好的返回點。

理解了具體的實現(xiàn)方法以后,在你的場景下方添加一個Plane。去除它的Mesh Collider組件,為它添加一個Box Collider 。將這個Box Collider的IsTrigger 選項打開。為Plane添加ReturnPlayer腳本。最后我們需要創(chuàng)建一個空物體作為返回位置的標記。將空物體拖拽到腳本的Return Point 處。

如果小貓返回效果不正確,你或許需要重新設(shè)置合適的重生點。

這節(jié)課程的內(nèi)容就是這樣了!下一節(jié)我們將會添加FEZ中最重要的視角旋轉(zhuǎn)功能并總結(jié)這個項目。


如何在Unity中開發(fā)一個類FEZ的游戲(二)的評論 (共 條)

分享到微博請遵守國家法律
张家界市| 鲁山县| 东丰县| 库伦旗| 施秉县| 玉树县| 内乡县| 温泉县| 通州市| 任丘市| 花莲市| 新泰市| 泸水县| 昌宁县| 巩留县| 陵川县| 巴南区| 尼勒克县| 德州市| 尼木县| 木里| 台东县| 贵港市| 岚皋县| 长治市| 双辽市| 和田市| 曲沃县| 榆树市| 南皮县| 临城县| 长治县| 东山县| 江津市| 博爱县| 菏泽市| 灌南县| 武隆县| 柞水县| 宁陵县| 扎兰屯市|