面闆動畫一般可以用在遊戲的設定面闆中,當在遊戲中點選某個按鈕後,設定面闆從某一個地方滑動進入視野,當操作玩家操作完後,再點選按鈕從視野滑動出去。
以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複選框。
全部儲存,運作即可。