2D游戏入门——小狐狸系列(六)为人物添加动画
Session06:動畫效果Animation
添加動畫效果
這節課我們來為人物添加動畫效果
先為人物創建一個Animator組件,并創建一個Animator Controller,將它拖到Animator組件的對應位置。
然后來創建具體的動畫,在Window->Animation下找到Animation并打開:
這是一個和flash一樣的東西,點擊新建一個clip,叫做idle,作為閑置狀態的動畫
然后將素材中的圖片拖到右邊的時間軸那里,此時點擊播放,會發現人物的運動太快了,有兩種方法可以調節速度,一種是選中所有幀,將它拉長,另一種是直接修改samples的值,也就是取樣的頻率,這里選擇第二種方式,將samples修改為10
如果發現沒有samples的可以點擊右上角的三個點來添加。
這樣動畫速度就正常了。
按照同樣的方法為人物添加run的動畫。
設置動畫切換
我們現在有兩種動畫狀態,idle和run,需要在這兩種狀態之間切換,有很多方法可以實現,這里我們選擇通過人物“速度”的判斷來實現
Window->Animation下找到Animator并打開
這里已經有我們添加的兩個動畫idle和run,分別選擇它們,右鍵選擇make transition,也就是創建過渡
在左上角的parameters那里添加一個float類型的參數running
選中idel->run的transition箭頭,在右側的Inspector修改參數,不需要exit time,取消勾選,也不需要transition duration也就是過渡時間,我們希望它直接切換狀態,然后新增一個condition,當running值大于0.1時切換動畫為run。
同樣對run->idle也進行相應的修改
好了,那么怎么將running參數對應到人物的速度呢?這就需要在PlayController中設置Animator的相關參數了。
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組件,設置float類型的參數"running"的值(可以選擇通過id或name的方式來獲取變量)為faceDirection的絕對值(也就是只有0和1),當0時人物處于idle狀態,當1時run。
總結
以上是生活随笔為你收集整理的2D游戏入门——小狐狸系列(六)为人物添加动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: solo升级以及自动化更新的方法
- 下一篇: java写飞控_无人机飞行控制源码(an