面板動畫一般可以用在遊戲的設置面板中,當在遊戲中點擊某個按鈕後,設置面板從某一個地方滑動進入視野,當操作玩家操作完後,再點擊按鈕從視野滑動出去。
以Unity 2017爲例
1.先添加一個3D項目,命名爲demo,然後在Assets目錄添加一個scene目錄,將默認的untitled場景保存到該目錄下,改名爲demo。
2.在Hierarchy窗口右鍵選擇“UI“=>“Panel”,添加一個面板,改名爲MainPanel,以同樣的方式再添加一個面板命名爲SettingPanel。
3.在MainPanel中添加一個Button,命名爲BtnToggleSetting,設置Text屬性爲“設置”。
4.在SettingPanel中添加一個Button,命名爲Back,設置Text屬性爲“返回”。
5.將SettingPanel面板上移到不與MainPanel重疊。
6.新建一個GameObject,命名爲_Toggle。
7.新建一個C#腳本,命名爲ui.cs,
添加如下代碼:
public Animator animator1;
public void Set()
{
if (animator1.GetBool("IsMove"))
{
animator1.SetBool("IsMove", false);
}
else
{
animator1.SetBool("IsMove", true);
}
}
並設置BtnToggleSetting的OnClick事件爲ui.Set。以同樣的方式設置Back的OnClick事件爲ui.set
8.在編輯器中把ui.cs腳本拖到_Toggle上,然後把SettingPanel拖到ui腳本的Aninator1上。
9.在Window菜單選擇Animation,打開動畫窗口,在Hierarchy中選中SettingPanel,然後在動畫窗口點擊"Create",創建一個向下移動的動畫,命名爲down。點擊Preveiw後面的紅色按鈕,開始錄製。
如圖所示操作,並在1、4步即0:00的位置與1:00的位置添加關鍵幀。再點紅色按鈕結束錄製。
10.以同樣的方法添加一個向上的動畫,命名爲up。並將down與up的Loop Time屬性去掉,不然會不斷循環,達不到效果。
11.在Window菜單中選擇Animator Parameter,在打開的窗口中添加一個Bool參數命名爲IsMove,複選框爲未選中狀態,即默認值爲false
12.在Window菜單中選擇Animator,打開Animator窗口,可以看到如下所示效果。
右鍵Create State、Empty添加一個新狀態。
在新狀態按鈕中右鍵Set as Layer Default State設置爲默認狀態。
再把新狀態的下一狀態設置爲down,down的下一狀態設置爲up,up的下一狀態設置爲新狀態。
選中New State,在轉換條件中選中New State=>down然後添加條件IsMove爲true,並且取消勾選Has Exit Time複選框。
同樣的操作,把down的轉換條件添加IsMove,但設置爲false,並且不勾選Has Exit Time複選框。只勾選up的Has Exit Time複選框。
全部保存,運行即可。