2D游戏入门——小狐狸系列(六)为人物添加动画
Session06:動(dòng)畫效果Animation
添加動(dòng)畫效果
這節(jié)課我們來(lái)為人物添加動(dòng)畫效果
先為人物創(chuàng)建一個(gè)Animator組件,并創(chuàng)建一個(gè)Animator Controller,將它拖到Animator組件的對(duì)應(yīng)位置。
然后來(lái)創(chuàng)建具體的動(dòng)畫,在Window->Animation下找到Animation并打開(kāi):
這是一個(gè)和flash一樣的東西,點(diǎn)擊新建一個(gè)clip,叫做idle,作為閑置狀態(tài)的動(dòng)畫
然后將素材中的圖片拖到右邊的時(shí)間軸那里,此時(shí)點(diǎn)擊播放,會(huì)發(fā)現(xiàn)人物的運(yùn)動(dòng)太快了,有兩種方法可以調(diào)節(jié)速度,一種是選中所有幀,將它拉長(zhǎng),另一種是直接修改samples的值,也就是取樣的頻率,這里選擇第二種方式,將samples修改為10
如果發(fā)現(xiàn)沒(méi)有samples的可以點(diǎn)擊右上角的三個(gè)點(diǎn)來(lái)添加。
這樣動(dòng)畫速度就正常了。
按照同樣的方法為人物添加run的動(dòng)畫。
設(shè)置動(dòng)畫切換
我們現(xiàn)在有兩種動(dòng)畫狀態(tài),idle和run,需要在這兩種狀態(tài)之間切換,有很多方法可以實(shí)現(xiàn),這里我們選擇通過(guò)人物“速度”的判斷來(lái)實(shí)現(xiàn)
Window->Animation下找到Animator并打開(kāi)
這里已經(jīng)有我們添加的兩個(gè)動(dòng)畫idle和run,分別選擇它們,右鍵選擇make transition,也就是創(chuàng)建過(guò)渡
在左上角的parameters那里添加一個(gè)float類型的參數(shù)running
選中idel->run的transition箭頭,在右側(cè)的Inspector修改參數(shù),不需要exit time,取消勾選,也不需要transition duration也就是過(guò)渡時(shí)間,我們希望它直接切換狀態(tài),然后新增一個(gè)condition,當(dāng)running值大于0.1時(shí)切換動(dòng)畫為run。
同樣對(duì)run->idle也進(jìn)行相應(yīng)的修改
好了,那么怎么將running參數(shù)對(duì)應(yīng)到人物的速度呢?這就需要在PlayController中設(shè)置Animator的相關(guān)參數(shù)了。
using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerController : MonoBehaviour {public Animator animator;// Update is called once per framevoid Update(){Movement();}void Movement(){//...省略//角色移動(dòng)if (horizontalAxis != 0){rb.velocity = new Vector2(horizontalAxis * speed * Time.fixedDeltaTime, rb.velocity.y);//控制運(yùn)動(dòng)動(dòng)畫animator.SetFloat("running", Mathf.Abs(faceDirection));}//...省略} }獲得Animator組件,設(shè)置float類型的參數(shù)"running"的值(可以選擇通過(guò)id或name的方式來(lái)獲取變量)為faceDirection的絕對(duì)值(也就是只有0和1),當(dāng)0時(shí)人物處于idle狀態(tài),當(dāng)1時(shí)run。
總結(jié)
以上是生活随笔為你收集整理的2D游戏入门——小狐狸系列(六)为人物添加动画的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: solo升级以及自动化更新的方法
- 下一篇: java写飞控_无人机飞行控制源码(an