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