欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 關于Unity動畫狀態(tài)機Animator使用教程

關于Unity動畫狀態(tài)機Animator使用教程

熱門標簽:鶴壁高頻外呼系統(tǒng)多少錢一個月 400電話辦理費用低 地圖標注項目幾個月 宿遷怎么辦理400電話 外呼系統(tǒng)怎么群發(fā)短信 谷歌地圖標注日期 聯通外呼系統(tǒng)電腦app軟件 400電話申請到底哪家好 蘇州呼叫中心外呼系統(tǒng)哪家強

一、前言

Unity可以用兩種方式控制動畫
1 Animation,這種方式簡單,直接 Play(“Idle”)或者CorssFade(“Idle”)就可以播放動畫;
2 AnimatorUnity5.x之后推薦使用這種方式,因為里面可以加上混合動畫,讓動畫切換更加平滑。

二、Animator組件

你通過Animation窗口(快捷鍵是Ctrl+6)中的Create New Clip創(chuàng)建Animation時,一個 Animator已經悄無聲息地出現在了對應的GameObject

三、Animator Controller文件

在第一步中生成的Animator組件上, 第一個Controller參數在創(chuàng)建Animator時已經被賦值了,可以點擊該值,并切換到Project窗口下,會發(fā)現這個 Controller對應的文件是一個.controller文件。
Animator Controller就是動畫控制器,負責在不同的動畫間切換,屬于制作動畫效果的必備原件。

注意,你也可以通過GameObject上的 Add Component添加一個嶄新的 Animator組件,但是這種情況下 AnimatorController參數默認為空,所以需要我們手動將事先準備好的.controller文件拖拽到該參數位置,動畫控制器才能正常工作。

四、Animation Clip文件

雙擊 .controller"文件,會彈出一個 Animator窗口,該窗口中顯示的就是動畫控制器文件中的所有內容(也可以在頂部的工具欄通過 Window - Animator打開這個界面)

Project窗口右鍵單擊,選擇Create->Animation創(chuàng)建Animation Clip.anim文件)

再把.anim文件拖拽進Animator窗口,作為Animator Controller的一個狀態(tài)(State

通過Animator創(chuàng)建出來的Animation Clip無法直接通過掛Animation組件進行播放,如果強行播放,Console會報一條警告信息:

The AnimationClip 'XXX' used by the Animation component 'XXX' must be marked as Legacy.

以及一條提示信息

Default clip could not be found in attached animations list

如下

為什么呢?
如果我們把Inspector切換為Debug模式

可以看到Animation Clip有個Legacy勾選框

Legacy是遺產的意思,也就是傳統(tǒng)的通過Animation組件來播放Animation Clip的做法,如果使用Animation組件來播放Animation Clip,則必須把Legacy勾選上,不過這種方式已經是過時的做法,推薦使用Animator來播放Animation Clip

五、 狀態(tài)機的狀態(tài)(State)

每個Animator Controller都會自帶三個狀態(tài):Any State, EntryExit

1、Any State狀態(tài)

表示任意狀態(tài)的特殊狀態(tài)。例如我們如果希望角色在任何狀態(tài)下都有可能切換到死亡狀態(tài),那么Any State就可以幫我們做到。當你發(fā)現某個狀態(tài)可以從任何狀態(tài)以相同的條件跳轉到時,那么你就可以用Any State來簡化過渡關系。

2、Entry狀態(tài)

表示狀態(tài)機的入口狀態(tài)。當我們?yōu)槟硞€GameObject添加上Animator組件時,這個組件就會開始發(fā)揮它的作用。
如果Animator Controller控制多個Animation的播放,那么默認情況下Animator組件會播放哪個動畫呢? 由Entry來決定的。
但是Entry本身并不包含動畫,而是指向某個帶有動畫的狀態(tài),并設置其為默認狀態(tài)。被設置為默認狀態(tài)的狀態(tài)會顯示為 橘黃色。

當然,你可以隨時在任意一個狀態(tài)上通過 鼠標右鍵->Set as Layer Default State更改默認狀態(tài)。

記住, EntryAnimator組件被激活后 無條件 跳轉到默認狀態(tài),并且每個Layer有且僅有一個默認狀態(tài)。

3、Exit狀態(tài)

表示狀態(tài)機的出口狀態(tài),以紅色標識。如果你的動畫控制器只有一層,那么這個狀態(tài)可能并沒有什么卵用。但是當你需要從子狀態(tài)機中返回到上一層(Layer)時,把狀態(tài)指向Exit就可以了。

六、動畫狀態(tài)的屬性

我們可以選中某個自定義狀態(tài),并在Inspector窗口下觀察它具有的屬性

屬性名 描述
Motion 狀態(tài)對應的動畫。每個狀態(tài)的基本屬性,直接選擇已定義好的動畫(Animation Clip)即可
Speed 動畫播放的速度。默認值為1,表示速度為原動畫的1.0倍。
Mutiplier 勾選右側的Parameter后可用,即在計算Speed的時考慮 區(qū)域1 中定義的某個參數。若選擇的參數為smooth, 則動畫播放速度的計算公式為 smooth * speed * fps(animation clip中指定)
Mirror 僅適用于humanoid animation(人型機動畫)
Cycle Offset 周期偏移,取值范圍為0-1.0,用于控制動畫起始的偏移量。把它和正弦函數的offset進行對比就能夠理解了,只會影響起始動畫的播放位置。
Foot IK 僅適用于humanoid animation(人型機動畫)
Write Default 最好保持默認,感興趣可以參考官方手冊
Transitions 該狀態(tài)向其他狀態(tài)發(fā)起的過渡列表,包含了Solo和Mute兩個參數,在預覽狀態(tài)機的效果時起作用
Add Behaviour 用于向狀態(tài)添加“行為”

七、狀態(tài)間的過渡關系(Transitions)

直觀上說它們就是連接不同狀態(tài)的有向箭頭

要創(chuàng)建一個從狀態(tài)A狀態(tài)B的過渡,直接在狀態(tài)A上 鼠標右鍵 - Make Transition并把出現的箭頭拖拽到狀態(tài)B上點擊鼠標左邊即可。

八、添加狀態(tài)控制參數

參數有FloatIntBoolTrigger

FloatInt用來控制一個動畫狀態(tài)的參數,比如速度方向等可以用數值量化的東西,
Bool用來控制動畫狀態(tài)的轉變,比如從走路轉變到跑步,
Trigger本質上也是bool類型,但它默認為false,且當程序設置為true后,它會自動變回false

如下這里創(chuàng)建一個Int類型的參數AnimState

九、編輯切換狀態(tài)的條件

點擊連線,在Inspecter窗口中可以進行設置,在Conditions欄下可以添加條件,如下圖表示當參數
AnimState0時會執(zhí)行這個動畫Any StateNew Animation2的過渡

必須在Parameters面板中添加了參數才可以在這里查看到,其次添加的條件為”與”關系,即必須同時滿足。

十、代碼中控制狀態(tài)

我們可以通過代碼來設置條件狀態(tài),達到動畫切換的目的

Animator ator = go1.GetComponentAnimator>();
ator.SetInteger("AnimState", 0);

上面的代碼,讓AnimState這個參數值為0,滿足了從Any StateNew Animation2的過渡條件,從而實現New Animation2動畫的過渡。

十一、檢查動畫狀態(tài)

方法1、AnimatorStateInfo

在腳本中添加代碼

//檢查是否正在播放jump動畫.
AnimatorStateInfo stateinfo = anim.GetCurrentAnimatorStateInfo(0);   
bool playingJump = stateinfo.IsName("jump");
if(playingJump)
{
	if(stateinfo.normalizedTime  1.0f)
	{
		//正在播放
	}
	else
	{
		//播放結束
	}
	
}

當處于狀態(tài)jump,則stateinfo.IsName("jump")返回true

方法2、繼承StateMachineBehaviour

Animator的每個狀態(tài)都可以掛載腳本,創(chuàng)建腳本,繼承于StateMachineBehaviour類,用于檢測狀態(tài)機中動畫切片(Anamation)的運行狀態(tài)。
官方示例:https://docs.unity3d.com/ScriptReference/StateMachineBehaviour.html
將腳本掛載在對應的狀態(tài)上即可。代碼如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JumpState : StateMachineBehaviour
{
    private GameObject player;
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        // 正在played的狀態(tài)的第一幀被調用
        Debug.Log("------OnStateEnter------------");
    }
    // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {        
    }
    // OnStateExit is called when a transition ends and the state machine finishes evaluating this state
    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        // 轉換到另一個狀態(tài)的最后一幀 被調用
        Debug.Log("-------------OnStateExit-----------------");
    }
    // OnStateMove is called right after Animator.OnAnimatorMove()
    override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
    	// 在OnAnimatorMove之前被調用 
        
    }
    // OnStateIK is called right after Animator.OnAnimatorIK()
    override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        // 在OnAnimatorIK之后調用,用于在播放狀態(tài)時的每一幀的monobehavior。
        // 需要注意的是,OnStateIK只有在狀態(tài)位于具有IK pass的層上時才會被調用。
        // 默認情況下,圖層沒有IK通道,所以這個函數不會被調用
        // 關于IK的使用,可以看看這篇文章《Animator使用IK實現頭部及身體跟隨》
        // https://www.jianshu.com/p/ae6d65563efa
    }
}

十二、控制播放速度

Animator ator = go1.GetComponentAnimator>();
var stateinfo = ator.GetCurrentAnimatorStateInfo(0);
if(stateinfo.IsName("Jump"))
{
	ator.speed = 2;
}

十三、注意事項

1 取消勾選

Can Transition To Self,不然動畫會出現抖動

2 動作循環(huán)。

不然如果沒有下個狀態(tài)切換,直接停止動作

3.一般我們要的都是立即切換,所以這里 不要勾選

Has Exit Time,如果勾選了,則表示在該動作完成后才允許切換,

十四、補充

1、Mirror

鏡像,可以反轉當前動畫,減少動畫師工作量

2、Solo與Mute

Mute相當于把目標過渡禁用掉。Solo表示只生效這一條過渡
可以多選,當選中后會出現箭頭提示
條件滿足優(yōu)先于Solo/Mute,當條件沒有滿足時依然不會過渡

以上就是關于Unity動畫狀態(tài)機Animator使用教程的詳細內容,更多關于Unity動畫狀態(tài)機Animator使用的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Unity 如何設定 Animator分割播放
  • Unity3D制作序列幀動畫的方法
  • Unity代碼實現序列幀動畫播放器
  • 在Unity中實現動畫的正反播放代碼

標簽:莆田 襄陽 哈爾濱 鄂爾多斯 遵義 錫林郭勒盟 雙鴨山 丹東

巨人網絡通訊聲明:本文標題《關于Unity動畫狀態(tài)機Animator使用教程》,本文關鍵詞  關于,Unity,動畫,狀態(tài)機,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于Unity動畫狀態(tài)機Animator使用教程》相關的同類信息!
  • 本頁收集關于關于Unity動畫狀態(tài)機Animator使用教程的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日本污视频网站| 日韩精品一区二区三区视频播放| 久久精品视频在线看| 奇米影视在线99精品| 四虎永久免费观看| 欧美亚洲免费在线一区| 一区精品在线播放| 成人性色生活片| 日韩va亚洲va欧美va清高| 国产欧美日韩久久| 国产精品一区二区黑丝| 亚洲天堂av中文字幕| 久久久久久99精品| 国产自产v一区二区三区c| 国产精成人品免费观看| 精品久久久久av影院| 老司机精品视频线观看86| 欧美色图亚洲激情| 精品捆绑美女sm三区| 久久草av在线| 色噜噜噜噜噜噜| 国产偷国产偷精品高清尤物| 国产剧情av麻豆香蕉精品| 我要看一级黄色录像| a级在线观看视频| 日韩一级免费观看| 男女性色大片免费观看一区二区| 麻豆精品免费视频| 久久久久久黄色| 成人av电影在线网| 在线亚洲欧美专区二区| 亚洲一区二区在线免费看| 亚洲欧美日韩色| 欧美成人一区二区三区片免费 | 亚洲三级在线播放| 91美女蜜桃在线| 欧美卡1卡2卡| 日本vs亚洲vs韩国一区三区 | 亚洲少妇中文字幕| 7777精品伊人久久久大香线蕉完整版 | 国产精品18久久久久久久久| 丝袜 亚洲 另类 欧美 重口| 一区二区三区丝袜| 色噜噜在线观看| 国产亚洲精品资源在线26u| 成人手机在线视频| 精品视频免费看| 蜜臀av国产精品久久久久| 日韩一级片在线免费观看| 亚洲视频你懂的| 三级电影在线看| 国产精品―色哟哟| 香蕉视频免费网站| 久久一区二区三区国产精品| 成人午夜激情影院| 欧美人动与zoxxxx乱| 激情伊人五月天久久综合| 欧美色图亚洲视频| 天天av天天翘天天综合网| 天天干天天操天天拍| 依依成人综合视频| 亚洲AV无码国产成人久久| 国产精品国产成人国产三级| 国产高潮视频在线观看| 欧美国产日韩a欧美在线观看| 中文字幕人妻熟女人妻a片| 精品国产麻豆免费人成网站| jiyouzz国产精品久久| 欧美一区二区三区成人| 国产91清纯白嫩初高中在线观看| 欧美日韩午夜精品| 国产美女在线精品| 欧美日韩电影一区| 成人综合在线视频| 日韩欧美一二三| 99精品国产99久久久久久白柏| 欧美成人一区二区三区在线观看| 99视频国产精品| 精品国产一区二区在线观看| 91丨九色丨尤物| 久久综合狠狠综合久久激情 | 香蕉成人啪国产精品视频综合网 | 久久精品国产亚洲av久| 亚洲乱码国产乱码精品精可以看 | 视频一区欧美精品| 老女人性淫交视频| 麻豆国产欧美日韩综合精品二区| 在线这里只有精品| 国产一区二区三区在线观看精品| 7777精品久久久大香线蕉| 成人av集中营| 国产欧美一区二区在线| 一出一进一爽一粗一大视频| 亚洲美腿欧美偷拍| 波多野结衣家庭教师在线观看| 日韩成人一区二区三区在线观看| 在线影院国内精品| 成人免费黄色大片| 国产亚洲欧洲997久久综合 | 精品人妻一区二区免费视频| 亚洲三级电影网站| 日韩精品久久久久久久的张开腿让 | 欧美综合亚洲图片综合区| 国产伦精品一区二区三区在线观看| 91.com视频| 99精品一区二区三区| 欧美激情资源网| 久久亚洲无码视频| 天堂va蜜桃一区二区三区| 欧美伊人久久久久久久久影院| 成人一区二区三区| 欧美国产综合色视频| 国产精品久久久久无码av色戒| 天天av天天翘天天综合网| 欧美日韩www| 中文字幕在线观看视频www| 亚洲少妇最新在线视频| 91香蕉一区二区三区在线观看| 国产在线播放一区三区四| 精品国产麻豆免费人成网站| 人妻丰满熟妇av无码久久洗澡 | 色狠狠色噜噜噜综合网| 成人精品国产免费网站| 亚洲国产精品精华液ab| www成人啪啪18软件| 国产一区二区在线视频| 国产欧美日韩视频一区二区| 国产三级在线观看完整版| 狠狠色丁香婷综合久久| 欧美精品一区二区久久久| 国产熟妇久久777777| 另类小说一区二区三区| 精品国产百合女同互慰| a级在线免费观看| 久久99精品久久久久| 久久久久9999亚洲精品| 人妻无码一区二区三区免费| 国产精品系列在线播放| 国产精品免费看片| 国产乱国产乱老熟300| 99riav一区二区三区| 一区二区三区资源| 欧美日韩中文字幕一区| 精品一区二区三区四区五区六区| 石原莉奈一区二区三区在线观看| 日韩欧美一区二区不卡| 五月激情四射婷婷| 成人黄色av电影| 一区二区三区免费网站| 538prom精品视频线放| 国产精品九九九九九| 国产一区二区免费在线| 国产精品成人免费精品自在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 91丝袜美腿高跟国产极品老师| 亚洲成av人片一区二区梦乃| 欧美一级高清大全免费观看| 亚洲精品成人无码| 国产高清亚洲一区| 亚洲少妇30p| 欧美一区二区三区免费大片| 99在线视频免费| 播五月开心婷婷综合| 亚洲二区在线观看| 精品日韩av一区二区| 欧美一级片在线视频| 四虎国产精品永久免费观看视频| 日韩高清一区在线| 久久久精品tv| 在线精品视频免费播放| 少妇精品一区二区| 国产成人精品亚洲777人妖| 亚洲一区视频在线| 精品国产一区二区三区忘忧草| 男女性高潮免费网站| 男人的天堂影院| 黄色资源网久久资源365| 综合欧美亚洲日本| 欧美一区二区久久| 少妇高潮一区二区三区喷水| 人妻换人妻仑乱| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品欧美综合四区| 精品成人一区二区| 色狠狠桃花综合| 五级黄高潮片90分钟视频| 成人涩涩免费视频| 日韩中文字幕亚洲一区二区va在线| 欧美国产日韩在线观看| 91精品国产欧美日韩| 久久99久久99精品免费看小说| 五月天丁香社区| 国产电影一区二区三区| 亚洲一区二区三区四区在线 | 色天使在线视频| 成年人网站91| 久久97超碰国产精品超碰| 一区二区三区免费| 国产欧美日韩中文久久| 日韩精品一区二区三区在线播放|