Unity中Animator的2DSprite動畫控制與使用


關於Unity動畫系統幾個名詞概念,需要了解一下:

Animator:動畫控制器,控制Mecanim動畫系統的接口。

Animation:animation組件用於播放動畫

AnimationClip:動畫剪輯片段,儲存基於關鍵幀的動畫,是用於Animation來播放動畫。

Animation編輯面板:此面板可以進行動畫的調整,crtl+6打開animation編輯面板,默認是不能進行任何操作的,要選中做動畫的精靈才可以創建動畫。

 

關於創建2D動畫的方法有很多,百度搜一下不再累贅,因為美術資源已經做好了部分切圖處理,所以我直接拿已經切好的動畫來進行處理:

分別制作了Idle,open,eat,unhappy,play五個動畫剪輯片段。並制作了一個新的Animator用來作為Player的控制。

之后再Animator建立聯系,添加變量

添加各種條件,為下一步腳本控制做准備。

 

 為Player添加PlayerObject.cs組件測試

 1 public enum playerAnimState {
 2     /// <summary>
 3     /// 玩耍狀態
 4     /// </summary>
 5     play,
 6     /// <summary>
 7     /// 默認狀態
 8     /// </summary>
 9     idle,
10     /// <summary>
11     /// 張嘴狀態
12     /// </summary>
13     open,
14     /// <summary>
15     /// 吞食狀態
16     /// </summary>
17     eat,
18     /// <summary>
19     /// 失敗狀態
20     /// </summary>
21     unhappy,
22 }
23 
24 public class PlayerObject : MonoBehaviour {
25     /// <summary>
26     /// 動畫狀態
27     /// </summary>
28     public playerAnimState playerState;
29     /// <summary>
30     /// 動畫控制器
31     /// </summary>
32     public Animator playerAnimator;
33 
34     /// <summary>
35     /// 改變玩家狀態方法
36     /// </summary>
37     /// <param name="state">玩家狀態</param>
38     public void ChangeState(playerAnimState state) {
39         switch (state)
40         {
41             case playerAnimState.play:
42                 playerAnimator.SetBool("IsPlay",true);
43                 playerAnimator.SetBool("IsIdle",false);
44                 break;
45             case playerAnimState.idle:
46                 playerAnimator.SetBool("IsIdle", true);
47                 playerAnimator.SetBool("IsOpen", false);
48                 playerAnimator.SetBool("IsPlay", false);
49                 break;
50             case playerAnimState.open:
51                 playerAnimator.SetBool("IsOpen", true);
52                 playerAnimator.SetBool("IsIdle", false);
53                 break;
54             case playerAnimState.eat:
55                 playerAnimator.SetBool("IsEat", true);
56                 playerAnimator.SetBool("IsOpen", false);
57                 break;
58             case playerAnimState.unhappy:
59                 playerAnimator.SetBool("IsUnhappy", true);
60                 playerAnimator.SetBool("IsOpen", false);
61                 break;
62             default:
63                 break;
64         }
65     }
66 }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM