Unity暑期萌新入門:玩家角色(一)

作者:Truly
前言
上一節(jié)我們完成了Untiy新建項(xiàng)目、教程資源導(dǎo)入等準(zhǔn)備工作,這一節(jié)我們將正式開始游戲制作。

英文原版教程的名字是John Lemon's Haunted Jaunt: 3D Beginner,而冒號(hào)前面的部分《John Lemon's Haunted Jaunt》即是教程中游戲的名字。咱們要做的,就是這款游戲。
游戲講述的是一只叫做John Lemon的貓穿越鬼屋的故事。玩法很簡單,在不被石像鬼(不會(huì)動(dòng))和幽靈(會(huì)巡邏)發(fā)現(xiàn)的情況下,到達(dá)終點(diǎn)就順利通關(guān),被發(fā)現(xiàn)了就只能再接再厲了~


這個(gè)教程的目的,是希望大家通過完成一個(gè)簡單的小游戲,體驗(yàn)游戲的制作流程,對軟件操作以及腳本思路留下初步印象。
如果用平時(shí)玩游戲的思路,那么大家可以當(dāng)作初次接觸新游戲的一周目,每一小篇等于一個(gè)關(guān)卡,在不斷“翻車”中慢慢摸索基礎(chǔ)技巧。一定不要強(qiáng)求自己做一遍就掌握全部知識(shí),如果想更加深入地理解,還需要大~~~~~~~量工程的練習(xí)。
再強(qiáng)調(diào)一下,在接下來的步驟中,除開操作本身,我也會(huì)簡單介紹每步的作用和原理,大家看看就好,現(xiàn)階段看不懂也是完全OK的——只要照著具體的操作做就好。等學(xué)到稍微后面一點(diǎn)再回過頭來看,你會(huì)發(fā)現(xiàn)這些曾經(jīng)張牙舞爪的內(nèi)容······

一、預(yù)制體(Prefabs)
1 創(chuàng)建實(shí)例
下邊通過在場景中添加我們的主角貓咪John Lemon來學(xué)習(xí)創(chuàng)建實(shí)例:
(1)在Project窗口中,轉(zhuǎn)到Assets> Models> Characters?文件夾,找到JohnLemon?的模型。
(2)將JohnLemon模型從Project窗口拖到Scene視窗中(也可以將模型拖動(dòng)到Hierarchy視窗中) 。
(3)將光標(biāo)放在Scene 視圖上,按F進(jìn)行快速定位。

2 創(chuàng)建Prefabs(預(yù)制體)
Prefabs(預(yù)制體)是一種特殊的Asset(資源),它相當(dāng)于一個(gè)模板,里邊包含了各種已經(jīng)設(shè)置好的components(組件),可以通過拖拽的方式實(shí)例化多個(gè)相同的對象。有一點(diǎn)需要注意,當(dāng)Prefabs發(fā)生改變,其對應(yīng)的實(shí)例也會(huì)跟著改變。
打開下方Project視窗中Assets>Prefabs文件夾,在Hierarchy視窗中把JohnLemon的GameObject拖入Prefabs文件夾中,彈窗選擇Original Prefab。

二、讓角色動(dòng)起來
1 創(chuàng)建Animator Controller
在Project Window中,打開Assets> Animation> Animators文件夾,文件夾內(nèi)右鍵選擇Create> Animator Controller,命名為“JohnLemon”(F2可重命名)。

2 添加動(dòng)畫
(1) 雙擊剛剛創(chuàng)建的JohnLemon(Animator Controller)來打開Animator State(動(dòng)畫狀態(tài)機(jī))。Animator State決定當(dāng)前播放的動(dòng)畫。
(2) Project視窗中,打開Assets > Animation > Animation文件夾,把John@Idle?(空閑)、John@Walk(行走)兩個(gè)動(dòng)畫分別拖進(jìn)去。

3 設(shè)置動(dòng)畫過渡以及過渡條件
(1)設(shè)置動(dòng)畫過渡
①右鍵Idle狀態(tài),選擇Make Transition,連接Walk狀態(tài)。
②右鍵Walk狀態(tài),選擇Make Transition,連接Idle狀態(tài)。

(2)設(shè)置過渡條件
① 取消退出時(shí)間
左鍵選中連接線,Inspector窗口中取消勾選Has Exit Time。如果不取消,則會(huì)等待上一個(gè)動(dòng)畫片段播完才過渡,造成延遲。

② 設(shè)置Conditions(條件)
Animator視窗中選擇Paraeters(參數(shù)),點(diǎn)擊+按鈕,選擇Bool類型參數(shù),命名為IsWalking。這里參數(shù)將會(huì)在以后的腳本中調(diào)用,控制動(dòng)畫片段的播放。

選中Idle--->Walk的連接線,點(diǎn)擊Inspector窗口中Condition框里的+添加參數(shù),設(shè)置IsWalking,true。表示當(dāng)IsWalking==true(真)時(shí),從Idle中過渡到Walk狀態(tài)。

選中Walk--->Idle的連接線,點(diǎn)擊Inspector窗口中Condition框里的+添加參數(shù),設(shè)置IsWalking,false。表示當(dāng)IsWalking==false(假)時(shí),從Walk中過渡到Idle狀態(tài)。
4 把Animator Controller分配給JohnLemon Prefab:
(1)編輯Prefab(預(yù)制體)
① 打開預(yù)制體。選中Prefabs文件夾里邊JohnLemon的預(yù)制體,點(diǎn)擊Inspector視窗里的Open Prefab。

② 編輯預(yù)制體。勾選自動(dòng)保存(Auto Save)。

(2)Project窗口中,進(jìn)入Assets> Animation> Animators文件夾,找到JohnLemon(Animator Controller)。
把JohnLemon(Animator Controller)拖進(jìn)Inspector的Animator組件Controller框里,把Updare Mode更改為Animate Physics。Hierarchy視窗左上的箭頭可以返回MainScene。

現(xiàn)在大家可以按CTRL+P運(yùn)行游戲,查看一下自己的勞動(dòng)成果啦~

三、物理系統(tǒng)
Rigidbody(剛體)用于實(shí)現(xiàn)對象在場景中的物理交互,控制移動(dòng)的時(shí)候需要用此組件。
1 添加Rigidbody(剛體)
打開JohnLemon的預(yù)制體(Open Prefab)進(jìn)入編輯模式。在Inspector中,點(diǎn)擊右下角Add Component,搜索Rigidbody,選擇添加。

如果添加錯(cuò)誤了,點(diǎn)擊組件右上角齒輪,可選擇Remove Component刪除組件。

2 設(shè)置Rigidbody參數(shù)
Freeze Position:限制在選中軸方向上的移動(dòng)。
Freeze Rotation:限制繞選中軸的旋轉(zhuǎn)。
把Constraints(約束)下的參數(shù)如下設(shè)置:
勾選Freeze Position?Y。
勾選FreezeRotation?X 和 Z。

3 添加Collider(碰撞體)
Collider用于碰撞檢測,當(dāng)兩個(gè)對象相撞時(shí),只有他們都添加了Collider組件,以及至少其中一個(gè)擁有Rigidbody的情況下,物理引擎才會(huì)計(jì)算碰撞。
點(diǎn)擊Add Component,搜索Collider,選擇Capsule Collider(膠囊碰撞體)。

4 設(shè)置Collider(碰撞體)參數(shù)
Center(中心):Y軸0.7。
Radius(半徑):0.4。
Height(高度):1.4。

結(jié)語:
恭喜大家撐到這,完成了”第一關(guān)“。

在這一節(jié)中,我們先完成了John角色的實(shí)例化和創(chuàng)建了預(yù)制體,然后為他添加了動(dòng)畫片段,最后為他設(shè)置了物理系統(tǒng)相關(guān)組件(Rigidbody和Collider)。
現(xiàn)在我們的主人喵已經(jīng)可以瑟瑟發(fā)抖了,下一節(jié)我們將添加腳本,控制John移動(dòng)。
那么角色(一)設(shè)置部分到此結(jié)束,學(xué)有余力的同學(xué)之后可以看看接下來會(huì)發(fā)布的“角色(一)小知識(shí)篇”,里邊簡單解釋了剛才用到的相關(guān)知識(shí),不過即使不看呢,也不會(huì)影響后續(xù)游戲的完成。
如有任何疑問、建議,歡迎大家留言,咱們一起討論,共同進(jìn)步。

附上本期內(nèi)容概覽:

迫不及待想自行開始制作的小伙伴,可以瀏覽John Lemon's Haunted Jaunt官方教程:
https://learn.unity.com/project/john-lemon-s-haunted-jaunt-3d-beginner
學(xué)有余力的小伙伴們,如果想更加詳細(xì)地了解Unity入門知識(shí),可以參考以下入門視頻:
Unity游戲開發(fā)零基礎(chǔ)入門教程:

咱們的游戲開發(fā)交流群也歡迎強(qiáng)勢插入:869551769
希望參與線下游戲開發(fā)學(xué)習(xí)的,歡~~~~~~迎訪問:http://www.levelpp.com/