真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

transition狀態(tài)下Mecanim動畫的跳轉(zhuǎn)-創(chuàng)新互聯(lián)

來自: http://blog.csdn.net/o_oxo_o/article/details/21325901

目前創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設計、白云鄂網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Unity中Mecanim里面動畫狀態(tài)的變化,是通過設置參數(shù)(Parameter)或者按照結(jié)束時間來轉(zhuǎn)換的。但是如果當前狀態(tài)處在兩個狀態(tài)的過度狀態(tài),單純設置參數(shù)是實現(xiàn)不了動畫的跳轉(zhuǎn)的。今天上午我就碰到這種情況:

我想實現(xiàn)無論動畫在Run狀態(tài)還是RunJump狀態(tài)都能通過玩家按Slide鍵使其轉(zhuǎn)換到RunSlide(下滑)狀態(tài)。

如上圖所示(上圖中RunJump到RunSlide通過參數(shù)Slide和Jump來控制,請注意Attack跟這兩個狀態(tài)是沒有直接關(guān)系的)。角色當前處在從跑跳(RunJump)到跑(Run)的過渡狀態(tài)(一般是角色跳起后下降到地面之后的那段時間),這個時候如果玩家想要Slide(應該執(zhí)行RunSlide動畫),會發(fā)現(xiàn)動作無法執(zhí)行。

  這也是為什么在處理動畫跳轉(zhuǎn)邏輯的時候我們往往加上(!theAnimator.IsInTransition(0)) 來回避這種狀態(tài)。但這種方式應用在我今天碰到的情況是不行的,就像上面說的那樣,這時候用戶想Slide結(jié)果動畫不能播放。更糟糕的情況是如果我們處理了玩家按Slide鍵時的碰撞體使其高度縮?。ㄏ禄瑺顟B(tài)的碰撞體高度應該縮小,這個在Unity Pro中是可以在Mecanim里面實現(xiàn)的,也就是說不需要我們另外在程序中手動修改碰撞體高度。Free版沒有這個功能。),則玩家將看到角色碰到上方障礙物卻沒有結(jié)束游戲或者任何效果出現(xiàn)。

  當然我們可以在處理碰撞體的高度的時候判斷當前動畫是否處在Transition狀態(tài),是的話我們不縮小高度。是的這樣可以不至于讓玩家看到碰到障礙物卻沒有任何影響的尷尬場景,但是還是沒能解決玩家操作了角色使其下滑而角色卻沒有反應這個事實。

  一個解決的方法就是當檢測到用戶按Slide鍵后,不論當前是否是Transition狀態(tài),在設置Slide=true后,我們通過Animator的Play函數(shù)強制讓RunSlide動畫執(zhí)行起來,這樣就可以實時響應玩家的下滑請求。

        thisAnimator.SetBool(eventName, true);
if(eventName == "Slide")// && thisAnimator.IsInTransition(0))            thisAnimator.Play("RunSlide");

這里我本來是判斷是否是在過渡狀態(tài),是的話才強制運行下滑動畫。但是我后來發(fā)現(xiàn)除了過渡狀態(tài)時轉(zhuǎn)換不到RunSlide狀態(tài)外,RunJump狀態(tài)中當角色著陸的一瞬間也經(jīng)常不能通過知識設置Slide(Animator.SetBool)為true來轉(zhuǎn)到下滑動畫。所以我讓程序只要當用戶選擇了下滑就播放下滑動畫。


網(wǎng)頁名稱:transition狀態(tài)下Mecanim動畫的跳轉(zhuǎn)-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/ddcpji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部