国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity 3D腳本編程與游戲開發(fā)(3.2)

這篇具有很好參考價(jià)值的文章主要介紹了Unity 3D腳本編程與游戲開發(fā)(3.2)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

5.3.4 制作背包界?

????????背包界?是此實(shí)例中的重點(diǎn),因?yàn)樗钠聊贿m配?較有代表性。當(dāng)屏幕?較“瘦?”時(shí),道具列表中能顯?更多道具項(xiàng),?屏幕?較“矮胖”時(shí),顯?的道具項(xiàng)會變少。但這些都不影響玩家通過下拉滑動(dòng)查看所有道具,如圖5-37所?。
Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

?????????先??個(gè)Panel給整個(gè)道具框定位,由于窗?允許較?的伸縮幅度,因此可以采?讓橫向、縱向都拉伸的?式,如圖5-38所?。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

????????背包界?橫向、縱向都采?伸縮?式,且距離上下左右都有?定距離。這樣做出來的效果可適配范圍會?常?。?體位置確定了,接下來道具列表的主體就是?個(gè)單獨(dú)的ScrollView。由于已經(jīng)做好了背包界?的整體定位,因此滾動(dòng)區(qū)域作為?物體,只需要橫向、縱向全拉伸,且距離上下左右都為0,就可以填滿整個(gè)背包界?。
????????接下來制作每個(gè)單獨(dú)的?道具項(xiàng)?。為簡單起?,每個(gè)道具項(xiàng)只?1張底圖、1個(gè)圖標(biāo)和1個(gè)?本組成,其中底圖是?物體,圖標(biāo)和?本是底圖的?物體。做好之后把整個(gè)物體作為prefab,未來使?時(shí)根據(jù)背包?的道具創(chuàng)建更多項(xiàng)?,并填到Scroll View中即可。
????????Scroll View的功能已經(jīng)?較強(qiáng)?了,?且它的橫向、縱向滾動(dòng)條會?動(dòng)隱藏。我們的主要?作就是把表?每?個(gè)道具的控件填在ScrollView??。?法也很簡單,就是把所有的內(nèi)容都作為ScrollView/Viewport/Content的?物體,只要放在Content下,就會被?動(dòng)識別
了。
????????在實(shí)際項(xiàng)?中,需要?腳本創(chuàng)建道具項(xiàng)?,同樣也是將創(chuàng)建好的項(xiàng)?作為Content的?物體即可,如圖5-39所?。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

背包制作完成后,就可以運(yùn)?游戲進(jìn)?測試。測試的重點(diǎn)是調(diào)節(jié)Game窗???時(shí)觀察屏幕適配效果是否合理,以及背包界?的滑動(dòng)效果是否正確。
到這?考慮屏幕適配的游戲界?就基本制作完成了,下??節(jié)將對?條等細(xì)節(jié)進(jìn)?優(yōu)化。

5.3.5 利?進(jìn)度條制作?條

????????Unity提供的滑動(dòng)條可以很?便地修改外形,因此改為?條也毫?問題,甚?還能做成環(huán)形、圓形,并加?扇形動(dòng)畫。
?????????先新建?個(gè)滑動(dòng)條,將其拉伸?合適的?度和寬度。進(jìn)度條?體都是?九宮格圖?制作的,因此可以隨意拉伸?不破壞其外形。作為?條時(shí)不需要滑動(dòng)?柄,將?物體Handle Slide Area/Handle隱藏即可,不需要?jiǎng)h除。
????????接下來??標(biāo)修改滑動(dòng)條組件的Value,從左到右滑動(dòng),會發(fā)現(xiàn)到達(dá)最?值時(shí),滑動(dòng)條的外觀沒有全滿。其修改?法是,將?物體FillArea的右邊距改??些,如把默認(rèn)的15 改為5。這樣?條就?乎做好了,接著修改顏?。只需找到?物體FillArea/Fill,然后修改其中的圖?顏?即可。如果需要?底圖?條,只需隱藏?物體Background即可。
????????當(dāng)前的?條?的依然是默認(rèn)素材,只是換了顏?。但它有?個(gè)缺點(diǎn),由于九宮格圖?不能?限縮?,因此值為0時(shí)填充的顏?不會完全消失。更好的?法是利?Unity的“Image Type: Filled(圖?類型:填充)”這?功能,其關(guān)鍵思路如下。

01 修改整個(gè)滑動(dòng)條的??,讓?寬基本符合準(zhǔn)備的圖??例。
02 修改Background和Fill兩張圖?,必要時(shí)可以設(shè)置為保持?寬?。
03 Background圖?保持Simple模式,?Fill圖?則改為Filled(填充)模式,然后可以選擇各種填充?法,橫向、縱向、圓環(huán)等都可以,還可以進(jìn)?步指定移動(dòng)?向。
04 微調(diào)Fill Area物體的位置,讓填充物與背景對?。此?法制作的?條不僅效果多樣,對圖??乎也沒有要求,如圖5-
40所?,?且不存在值最?時(shí)不滿,值最?時(shí)不空的情況,值得嘗試。
Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

第6章 腳本與動(dòng)畫系統(tǒng)

????????動(dòng)畫是游戲中最吸引?的元素之?,?們很容易被精美的動(dòng)畫、華麗的特效所吸引。不過從純技術(shù)的?度來看,動(dòng)畫算是?個(gè)輔助性的系統(tǒng)。?部分游戲,特別是早期游戲,即便去掉所有動(dòng)畫,游戲依然能夠正常運(yùn)?。
????????不過,現(xiàn)代的?些動(dòng)作游戲采?了邏輯與動(dòng)畫深度結(jié)合的設(shè)計(jì)?法。在這類游戲中,?物的跑步、?路和攻擊等動(dòng)作直接控制著??的位置,這種技術(shù)被稱為“Root Motion(根?骼動(dòng)畫)”。
????????現(xiàn)在Unity對2D動(dòng)畫、3D動(dòng)畫、幀動(dòng)畫和根?骼動(dòng)畫等類型均有較好的?持,本章會有所側(cè)重地講解它們。并且隨著本章的學(xué)習(xí),讀者會發(fā)現(xiàn)在制作動(dòng)畫的過程中,腳本起到了聯(lián)系邏輯與動(dòng)畫的作?,其地位?關(guān)重要?,F(xiàn)代游戲應(yīng)當(dāng)具備?動(dòng)、真實(shí)和流暢的動(dòng)作,這對相關(guān)的編程技術(shù)也提出了挑戰(zhàn)。

6.1 動(dòng)畫系統(tǒng)基本概念

????????動(dòng)畫的基本概念有幀、幀動(dòng)畫與2D/3D?骼動(dòng)畫等,現(xiàn)代游戲開發(fā)中還加?了動(dòng)畫融合、動(dòng)畫狀態(tài)機(jī)等相關(guān)的概念。本節(jié)將對這些概念做總體的闡述。

6.1.1 動(dòng)畫的基本概念

1. 幀
????????在古代?幅字畫叫?幀,?在計(jì)算機(jī)中,每次渲染完畢?幅畫?并顯?出來,這?幅圖就是?幀。
????????連續(xù)切換的幀就形成了動(dòng)態(tài)的畫?。每秒刷新幀的次數(shù)稱為幀率,單位是“FPS(Frames Per Second,幀/秒)”,也可以簡稱為“幀”。傳統(tǒng)電影每秒顯?24幀就可以保證良好的動(dòng)態(tài)效果。由于游戲與電影顯?原理的不同,游戲?少需要30幀才能感到流暢,?要保證良好的視覺體驗(yàn)則最好是能達(dá)到60幀。在電?競技領(lǐng)域中,也會追求更?的幀率,以獲得?賽中的優(yōu)勢。
????????作為?戶當(dāng)然希望幀率盡可能穩(wěn)定,但在游戲運(yùn)?過程中,設(shè)備不?定能維持穩(wěn)定的幀率。當(dāng)運(yùn)算負(fù)載較?時(shí),Unity就會降低畫?和邏輯的更新次數(shù)。
?提?
幀間隔時(shí)間Time.deltaTimeUnity會記錄每?幀開始時(shí)間與上?幀時(shí)間的差值,保存到Time.deltaTime屬性中。開發(fā)者通過查詢Time.deltaTime,就可以知道實(shí)際上當(dāng)前幀相?前?幀過去了多少秒(實(shí)際時(shí)間),利?此時(shí)間可以對邏輯速度進(jìn)?修正。在動(dòng)畫系統(tǒng)底層已經(jīng)考慮了這種修正,讓動(dòng)畫播放幀率與真實(shí)的時(shí)間流逝相匹配。
2. 幀動(dòng)畫

????????幀動(dòng)畫是最古?、也最容易理解的?種動(dòng)畫技術(shù)。它是事先準(zhǔn)備好動(dòng)畫中的每?幀畫?,然后依次播放,如圖6-1所?。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

????????傳統(tǒng)?繪動(dòng)畫?將幀動(dòng)畫技術(shù)發(fā)展到了很?的?平,2D游戲也?然借?了這?技術(shù),只不過將拍攝動(dòng)畫換成了計(jì)算機(jī)處理。幀動(dòng)畫?今活躍于許多卡通?格的游戲中,特別是“像素畫”?格與幀動(dòng)畫是絕配,不僅?格討巧,?且降低了美術(shù)?作量。
????????幀動(dòng)畫的優(yōu)點(diǎn):簡單直接、技術(shù)門檻低,美術(shù)設(shè)計(jì)師在?定范圍
內(nèi)可以?由發(fā)揮。
????????幀動(dòng)畫的缺點(diǎn):美術(shù)制作的?作量較?,占?的存儲空間也較?(每?幀都需要完整保存),?前主要?于2D游戲。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3. 3D?骼動(dòng)畫

????????早期的3D動(dòng)畫是由設(shè)計(jì)師編輯模型各部分的位置、旋轉(zhuǎn)等,直接制作出動(dòng)作。這有點(diǎn)類似于橡?泥??動(dòng)畫,要讓?物?路就要不斷調(diào)整頭、?體、?臂和腿等各個(gè)部分的位置,這導(dǎo)致最初的3D動(dòng)畫?作量?,?且很難做出真實(shí)的?類動(dòng)作。
????????隨著技術(shù)的發(fā)展,出現(xiàn)了“?骼動(dòng)畫”這?技術(shù)。?骼動(dòng)畫的技術(shù)思想簡單來說,是將?物模型與?個(gè)類似?柴棍組成的?架綁定在?起,每?段?柴棍(?骼)關(guān)聯(lián)著模型的?部分,這樣只需要移動(dòng)和旋轉(zhuǎn)?架,?物就會跟著做出各種動(dòng)作了?!?骼動(dòng)畫”這?技術(shù)不僅節(jié)省了?作量,?且動(dòng)作效果也變得更?然。三維模型的?骼如圖6-2所?。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

????????????????????????????????????????圖6-2?在3D設(shè)計(jì)軟件中綁定和調(diào)整?骼
????????另外,同?套?骼數(shù)據(jù)可以應(yīng)?于體型相近的不同??模型上,這樣就可以批量地制作更多的??。實(shí)踐中甚?可以將?套?骼和動(dòng)畫適配到另?套不同的?骼模型上,這稱為“重定向”。
Unity對3D動(dòng)畫、3D?骼動(dòng)畫均有較好的?持,如標(biāo)準(zhǔn)的FBX?件(?種常?的3D模型和動(dòng)畫?件格式)。
????????在Project窗?中選中FBX?件,可以在Inspector窗?內(nèi)看到導(dǎo)?設(shè)置,導(dǎo)?設(shè)置具有Model(模型)、Rig(?骼綁定)、Animation(動(dòng)畫)和Materials(材質(zhì))4個(gè)選項(xiàng),如圖6-3所?。其中的Rig選項(xiàng)中,可以選擇的動(dòng)畫類型為None(??骼)、Legacy(舊版系統(tǒng))、Generic(通?型)和Humanoid(?形),?前主要使?后兩者。如果是?形?骼模型,則選擇Humanoid選項(xiàng),在其他情況下(沒有?骼或不是?形??)都可以選擇Generic選項(xiàng)。Unity對常?的?形?骼有優(yōu)
化,功能更多,使?也更?便。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

?提?
?骼動(dòng)畫與第?部3D動(dòng)畫電影根據(jù)維基百科的相關(guān)資料,?骼動(dòng)畫技術(shù)最早于1988年被提
出。
世界上第?部純粹的3D動(dòng)畫電影是《玩具總動(dòng)員》(ToyStory,反?奇兵),于1995年上映。不過在它之前,也有?些影?和短?采?了3D動(dòng)畫技術(shù)。
4. 2D?骼動(dòng)畫
????????隨著?骼動(dòng)畫的發(fā)展,?們發(fā)現(xiàn)2D動(dòng)畫其實(shí)也可以借??骼動(dòng)畫技術(shù)。它的思路是,將2D???體的各個(gè)部分切割開,做成獨(dú)?的圖?,如頭、胸、腹、臂和腿等,然后綁定?個(gè)2D的“?柴”組成的?骼,通過調(diào)整?骼,也可以讓2D??活靈活現(xiàn)地動(dòng)起來,如圖6-4所?。這種做法能夠提?動(dòng)畫制作效率,同時(shí)也能提?資源利?率、顯著節(jié)約存儲空間。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

?前Unity對2D?骼動(dòng)畫也有較好的?持,可以借助官?擴(kuò)展包2DAnimation直接制作2D?骼動(dòng)畫,也可以使?更專業(yè)的2D?骼動(dòng)畫軟件,如Spine和Dragonbones,借助相關(guān)插件導(dǎo)?Unity中使?。

6.1.2 動(dòng)畫融合

????????3D?骼動(dòng)畫和2D?骼動(dòng)畫都有?個(gè)共同的特點(diǎn):動(dòng)畫被抽象化、數(shù)據(jù)化了,計(jì)算機(jī)能夠表?幀與幀之間的聯(lián)系,甚?能直接計(jì)算出兩幀之間的過渡狀態(tài)。動(dòng)畫設(shè)計(jì)師只需要指定?個(gè)動(dòng)作中的關(guān)鍵?個(gè)幀(關(guān)鍵幀),其他的幀(過渡幀)可以利?數(shù)學(xué)算法進(jìn)?插值計(jì)算(線性插值或其他插值算法)。
????????以此類推,不僅同?個(gè)動(dòng)作的各個(gè)關(guān)鍵幀之間可以?動(dòng)計(jì)算過渡幀,?且不同動(dòng)作之間也可以計(jì)算過渡幀。再進(jìn)?步,如果動(dòng)畫設(shè)計(jì)師提供了“慢?”和“疾跑”兩個(gè)動(dòng)作,甚?還可以通過插值計(jì)算出慢跑、中速跑等更多介于慢?和疾跑之間的動(dòng)作。這種在不同動(dòng)作之間?動(dòng)計(jì)算過渡狀態(tài)的技術(shù)稱為“動(dòng)畫融合”。
????????Unity對動(dòng)畫融合有很好的?持,在動(dòng)畫狀態(tài)機(jī)中有專?的融合樹(Blend Tree),它?持?個(gè)或兩個(gè)維度的動(dòng)畫融合。“兩個(gè)維度”指的是兩種運(yùn)動(dòng)?式,如常?的“轉(zhuǎn)?”和“前進(jìn)”就是兩個(gè)維度,利?BlendTree可以混合出慢?并快速左轉(zhuǎn),或者快?并慢速右轉(zhuǎn)等不計(jì)其數(shù)的動(dòng)作。第6.4節(jié)會詳細(xì)講解Blend Tree技術(shù)。
????????注意,在幀動(dòng)畫中,動(dòng)畫的每?幀都是相對獨(dú)?的。幀動(dòng)畫的數(shù)據(jù)沒有抽象化、數(shù)據(jù)化,就不可能進(jìn)?動(dòng)畫融合。因此,如果是采?幀動(dòng)畫技術(shù)制作的游戲,就不?考慮動(dòng)畫融合。

6.1.3 動(dòng)畫狀態(tài)機(jī)

?????????前,?乎所有的Unity游戲在制作動(dòng)畫時(shí)都要?到動(dòng)畫狀態(tài)機(jī)(Animator),動(dòng)畫狀態(tài)機(jī)?前已經(jīng)是游戲開發(fā)的標(biāo)準(zhǔn)配置。但是,作為Unity的學(xué)習(xí)者應(yīng)當(dāng)明?,理論上來說動(dòng)畫狀態(tài)機(jī)并不
是必需的。特別是對采?幀動(dòng)畫制作的游戲來說,幀動(dòng)畫本質(zhì)就是圖?的切換,那么只要及時(shí)切換圖?,?然就能正確播放動(dòng)畫。因此,?腳本直接修改圖?也并?不可,不?定?要使?動(dòng)畫狀態(tài)機(jī)。
????????只是在實(shí)際游戲開發(fā)中,利?動(dòng)畫狀態(tài)機(jī)可以統(tǒng)?動(dòng)畫制作的思路,包括2D動(dòng)畫、3D動(dòng)畫、?骼動(dòng)畫和動(dòng)畫融合等。因此,Unity逐漸摒棄了其他的動(dòng)畫管理?法,?統(tǒng)??動(dòng)畫狀態(tài)機(jī)組件管理所有動(dòng)畫。

?知識
已經(jīng)淘汰的Animation組件讀者在某些資料中可能會看到Animation組件,它也可以指定物體的動(dòng)畫并播放。但是其功能過于單?,完全可以被Animator替代,因此現(xiàn)在?乎看不到它的?影了。
1. 理解動(dòng)畫狀態(tài)機(jī)
要理解使?“動(dòng)畫狀態(tài)機(jī)”的必要性,需要思考?個(gè)問題:假設(shè)有站?、下蹲、?/跑和跳躍4種動(dòng)畫,那如何編程來描述動(dòng)畫狀態(tài),以便在不同的動(dòng)畫之間切換?其初步思考結(jié)論如下。
①在地?上速度為0時(shí),站?。這是默認(rèn)動(dòng)畫。
②在站?狀態(tài)下速度?于0,切換為?或跑的動(dòng)畫,根據(jù)移動(dòng)速度改變幀切換速度。
③在站?狀態(tài)下跳躍,切換為跳躍動(dòng)畫。
④在?/跑的狀態(tài)下跳躍,也切換為跳躍動(dòng)畫。
⑤在跳躍狀態(tài)下落地,切換為站?動(dòng)畫。如果速度不為0,站?動(dòng)畫會?即切換到?/跑動(dòng)畫。
⑥在站?狀態(tài)下下蹲,切換為下蹲動(dòng)畫。
⑦在下蹲狀態(tài)下站?,切換為站?動(dòng)畫。
以此類推,逐個(gè)分析清楚每?個(gè)動(dòng)畫狀態(tài)及轉(zhuǎn)移條件,就可以得出動(dòng)畫切換的思路。“思路”有?種明顯的模式:當(dāng)前處于某個(gè)狀態(tài),如果發(fā)?某件事,就切換到另?個(gè)狀態(tài)。
這種思路在編程中極其有?,它有?個(gè)專門的名稱——狀態(tài)機(jī)(State Machine)。雖然本?是在動(dòng)畫系統(tǒng)中初次提到狀態(tài)機(jī),但實(shí)際上狀態(tài)機(jī)的應(yīng)?極為?泛,包括在游戲邏輯架構(gòu)和AI系統(tǒng)中都經(jīng)常能?到它。
狀態(tài)機(jī)在任意時(shí)刻都具有?個(gè)“當(dāng)前狀態(tài)”,并且默認(rèn)會保持這?狀態(tài),只有在滿?某個(gè)條件時(shí),才會切換到另?個(gè)狀態(tài)。也就是說,狀態(tài)機(jī)有兩個(gè)要素:狀態(tài)和狀態(tài)轉(zhuǎn)移。
?腳本直接實(shí)現(xiàn)狀態(tài)機(jī),只需要??個(gè)變量保存當(dāng)前狀態(tài),根據(jù)游戲邏輯切換狀態(tài)即可。?對于動(dòng)畫系統(tǒng)來說,將狀態(tài)機(jī)思想應(yīng)?于管理動(dòng)畫狀態(tài)極為合適,具有很好的通?性。Unity所提供的動(dòng)畫狀態(tài)機(jī)組件,就是專門?來管理動(dòng)畫狀態(tài),以及動(dòng)畫之間的切換和過渡的。
2. 動(dòng)畫狀態(tài)機(jī)設(shè)計(jì)舉例
以?個(gè)簡單的2D游戲——《超級??奧兄弟》初代為例,介紹設(shè)計(jì)動(dòng)畫狀態(tài)機(jī)的基本思路。

?先,假設(shè)有站?、?/跑、跳躍和下蹲4種動(dòng)畫(暫時(shí)去掉剎?、發(fā)射?球等其他動(dòng)作)。如果將每種動(dòng)畫看成?種狀態(tài),??框表?,狀態(tài)之間的切換?箭頭表?,那么就可以得到?個(gè)狀態(tài)轉(zhuǎn)移圖,如圖6-5所?。注意圖中箭頭有明確的?向,有些切換是雙向的,?有些切換是單向的。
Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

????????從圖中可以看出,站?可以切換到下蹲、跳躍或?/跑,但跳躍不能直接切換到下蹲。跳躍也不能直接切換到?/跑,跳躍狀態(tài)唯?的出?是站?狀態(tài)。與跳躍類似,下蹲狀態(tài)也只能切換到站?狀態(tài)。雖然看似少了?些狀態(tài)轉(zhuǎn)移,但在跳躍或下蹲時(shí)利?瞬間的站?作為中轉(zhuǎn)狀態(tài),那么就可以過渡到?/跑的狀態(tài)了。
????????圖6-5是根據(jù)經(jīng)驗(yàn)設(shè)計(jì)的,最終還要根據(jù)實(shí)際動(dòng)畫效果調(diào)整。雖然動(dòng)畫狀態(tài)轉(zhuǎn)移圖的設(shè)計(jì)沒有固定的?法,但是?定要符合實(shí)際需要。當(dāng)然也完全可以在4種狀態(tài)之間畫滿雙向箭頭,只不過那樣做會增?邏輯處理的復(fù)雜性,得不償失。
????????有了基本的狀態(tài)轉(zhuǎn)移圖,之后還要具體指定狀態(tài)轉(zhuǎn)移條件。?般轉(zhuǎn)移條件是?專門的變量表?的,如可以??個(gè)speed變量表???當(dāng)前的速度,?crouch變量代表下蹲,?jump變量代表跳躍。在站?狀態(tài)下speed?于0,就切換到?/跑狀態(tài);在?/跑狀態(tài)下jump變成true,就切換到跳躍。這些變量都是動(dòng)畫專?變量,只要在腳本中改變它們的值,就可以讓動(dòng)畫狀態(tài)機(jī)按需求改變狀態(tài)。
????????注意,在下蹲狀態(tài)下僅有讓crouch變成false,才能退出下蹲狀態(tài),除此以外即使速度變化,也不會退出下蹲狀態(tài)。這種思路很清晰,進(jìn)?步降低了?腳本管理的難度。在Unity中,實(shí)際的動(dòng)畫狀態(tài)機(jī)設(shè)計(jì)如圖6-6所?,它包含了動(dòng)畫狀態(tài)轉(zhuǎn)移圖和變量列表。

Unity 3D腳本編程與游戲開發(fā)(3.2),Unity 3D腳本編程與游戲開發(fā),3d,腳本與動(dòng)畫系統(tǒng),Unity 3D腳本編程,游戲開發(fā),動(dòng)畫系統(tǒng)基本概念

?提?
蹲下時(shí)跳躍會怎樣?
玩過《超級??奧兄弟》系列作品的玩家都知道,這部游戲是允許在下蹲時(shí)跳躍的。但前?的動(dòng)畫狀態(tài)機(jī)在下蹲和跳躍之間沒有箭頭,如何解釋呢?
再重新玩?遍游戲會發(fā)現(xiàn),在下蹲時(shí)跳躍,雖然能夠跳起來,但??奧依然保持下蹲姿勢,這與前?的設(shè)計(jì)相符。
這也印證了在很多游戲中(使?根?骼動(dòng)畫的游戲除外),??的運(yùn)動(dòng)與動(dòng)畫?關(guān),動(dòng)畫只是表現(xiàn)層的東?。即使把主?變成?個(gè)?球,也不影響游戲的運(yùn)?。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-849264.html

到了這里,關(guān)于Unity 3D腳本編程與游戲開發(fā)(3.2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity 3D腳本編程與游戲開發(fā)【4.1】

    Unity 3D腳本編程與游戲開發(fā)【4.1】

    7.2.5 后期處理舉例 Post Processing(后期處理)并不屬于特效,但現(xiàn)代的特效表現(xiàn)離不開后期處理的?持。本?節(jié)以眩光(Bloom)為例,展??種明亮的激光的制作?法,其效果如圖7-13所?。 1. 安裝后期處理擴(kuò)展包 ????????較新的Unity版本(如2018.4版本)已經(jīng)內(nèi)置了新版的后

    2024年04月26日
    瀏覽(28)
  • Unity 3D腳本編程與游戲開發(fā)(2.2)

    Unity 3D腳本編程與游戲開發(fā)(2.2)

    3.2.7 修改物理材質(zhì) ????????每個(gè)物體都有著不同的摩擦?。光滑的冰?摩擦?很?,?地毯表?的摩擦?則很?。另外每種材料也有著不同的彈性,橡?表?的彈性?,硬質(zhì)地?的彈性?。在Unity中這些現(xiàn)象都符合?常的理念。 ????????雖然從原理上講,物體的摩擦?

    2024年02月04日
    瀏覽(21)
  • Unity 3D腳本編程與游戲開發(fā)(2.8)

    Unity 3D腳本編程與游戲開發(fā)(2.8)

    5.1.2 矩形變換(Rect Transform)組件 ????????如果選中界?上的控件,讀者會發(fā)現(xiàn)每個(gè)物體并不帶有基本的Transform組件,取?代之的是Rect Transform(矩形變換)組件。其實(shí)Rect Transform組件是Transform組件的?類,因此并不違反“每個(gè)物體必須有且只有?個(gè)Transform組件”的規(guī)定。

    2024年02月03日
    瀏覽(28)
  • Unity 3D腳本編程與游戲開發(fā)【3.7】

    Unity 3D腳本編程與游戲開發(fā)【3.7】

    ????????在這個(gè)??控制腳本中,可以看到很多新奇的寫法。關(guān)鍵是,為什么要把移動(dòng)量轉(zhuǎn)化為轉(zhuǎn)?量和前進(jìn)量呢?要理解這個(gè)問題,?定要多進(jìn)?游戲測試,體會轉(zhuǎn)?與輸?的關(guān)系。 ????????當(dāng)???朝前,輸?朝后時(shí),??的前進(jìn)量為0,轉(zhuǎn)?量達(dá)到最?;?當(dāng)??

    2024年04月15日
    瀏覽(23)
  • Unity 3D腳本編程與游戲開發(fā)(2.6)

    Unity 3D腳本編程與游戲開發(fā)(2.6)

    4.5.2 四元數(shù)的概念 ????????四元數(shù)包含?個(gè)標(biāo)量分量和?個(gè)三維向量分量,四元數(shù)Q可以記作Q=[w,(x,y,z)] ????????在3D數(shù)學(xué)中使?單位四元數(shù)表?旋轉(zhuǎn),下?給出四元數(shù)的公式定義。對于三維空間中旋轉(zhuǎn)軸為n,旋轉(zhuǎn)?度為a的旋轉(zhuǎn),如果?四元數(shù)表?,則4個(gè)分量分別為

    2024年02月03日
    瀏覽(29)
  • Unity 3D腳本編程與游戲開發(fā)(2.5)

    Unity 3D腳本編程與游戲開發(fā)(2.5)

    4.3.4 向量的點(diǎn)積 ????????兩個(gè)向量的點(diǎn)積是?個(gè)標(biāo)量,其數(shù)值為兩者?度相乘,再乘以兩者夾?的余弦: a·b=|a|·|b|cosθ?坐標(biāo)表?,公式為 (x1,y1,z1)·(x2,y2,z2)=x1x2+y1y2+z1z2 ????????注意到,兩個(gè)向量的點(diǎn)積是?個(gè)數(shù)(標(biāo)量),只有??,沒有?向。?且點(diǎn)乘滿?交換律,

    2024年02月03日
    瀏覽(29)
  • Unity 3D腳本編程與游戲開發(fā)【4.2】

    Unity 3D腳本編程與游戲開發(fā)【4.2】

    8.2.3 ?頻管理器 ????????在實(shí)際游戲開發(fā)中,?效既是?個(gè)相對獨(dú)?的部分,?與其他游戲邏輯密切關(guān)聯(lián)。也就是說,與?效相關(guān)的代碼會插?很多細(xì)節(jié)代碼中。 ?????????且在?效?常豐富的情況下,如果每?個(gè)游戲模塊都單獨(dú)播放?效,那么可能會帶來?些問題。

    2024年04月24日
    瀏覽(23)
  • Unity 3D游戲開發(fā)+腳本編程完整指南:制作第一個(gè)游戲:3D滾球跑酷

    Unity 3D游戲開發(fā)+腳本編程完整指南:制作第一個(gè)游戲:3D滾球跑酷

    教程相關(guān)資源 Unity 3D游戲開發(fā)+腳本編程完整指南(工程文件+PPT).zip 本節(jié)利用前面的知識來實(shí)現(xiàn)第一個(gè)較為完整的小游戲,如 圖 1-21 所示。 圖1-21 3D滾球跑酷游戲完成效果 1. 功能點(diǎn)分析 游戲中的小球會以恒定速度向前移動(dòng),而玩家控制著小球 左右移動(dòng)來躲避跑道中的黃色障

    2024年02月21日
    瀏覽(31)
  • Unity 3D游戲開發(fā)+腳本編程完整指南:Unity腳本概覽-控制物體的運(yùn)動(dòng)

    Unity 3D游戲開發(fā)+腳本編程完整指南:Unity腳本概覽-控制物體的運(yùn)動(dòng)

    教程相關(guān)資源 Unity 3D游戲開發(fā)+腳本編程完整指南(工程文件+PPT).zip Unity 腳本概覽 腳本編寫并不困難,但是如果直接從細(xì)節(jié)開始講起,會讓 讀者難以看到腳本編程的全貌。因此本章不急于闡述腳本編寫 的細(xì)節(jié),只介紹簡單的修改物體位置、處理用戶輸入和檢測碰 撞的方法

    2024年02月21日
    瀏覽(116)
  • Unity讀書系列《Unity3D游戲開發(fā)》——腳本(一)

    Unity讀書系列《Unity3D游戲開發(fā)》——腳本(一)

    腳本在Unity的重要程度不用多說,她是大部分軟件的核心組件。 我們將在此篇文章學(xué)習(xí)腳本模版及其拓展、腳本的生命周期、腳本的執(zhí)行順序、腳本序列化,下一篇為腳本編譯與調(diào)試。 如下圖我們可以在Project視圖右鍵進(jìn)行腳本創(chuàng)建,除了C#腳本,還有兩類腳本;Testing用來做

    2024年04月28日
    瀏覽(101)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包