天天看點

Unity實戰之面闆動畫

面闆動畫一般可以用在遊戲的設定面闆中,當在遊戲中點選某個按鈕後,設定面闆從某一個地方滑動進入視野,當操作玩家操作完後,再點選按鈕從視野滑動出去。

Unity實戰之面闆動畫
Unity實戰之面闆動畫

以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。

Unity實戰之面闆動畫

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

Unity實戰之面闆動畫

8.在編輯器中把ui.cs腳本拖到_Toggle上,然後把SettingPanel拖到ui腳本的Aninator1上。

Unity實戰之面闆動畫

9.在Window菜單選擇Animation,打開動畫視窗,在Hierarchy中選中SettingPanel,然後在動畫視窗點選"Create",建立一個向下移動的動畫,命名為down。點選Preveiw後面的紅色按鈕,開始錄制。

Unity實戰之面闆動畫

如圖所示操作,并在1、4步即0:00的位置與1:00的位置添加關鍵幀。再點紅色按鈕結束錄制。

Unity實戰之面闆動畫

10.以同樣的方法添加一個向上的動畫,命名為up。并将down與up的Loop Time屬性去掉,不然會不斷循環,達不到效果。

Unity實戰之面闆動畫

11.在Window菜單中選擇Animator Parameter,在打開的視窗中添加一個Bool參數命名為IsMove,複選框為未選中狀态,即預設值為false

Unity實戰之面闆動畫

12.在Window菜單中選擇Animator,打開Animator視窗,可以看到如下所示效果。

Unity實戰之面闆動畫

右鍵Create State、Empty添加一個新狀态。

Unity實戰之面闆動畫

在新狀态按鈕中右鍵Set as Layer Default State設定為預設狀态。

Unity實戰之面闆動畫

再把新狀态的下一狀态設定為down,down的下一狀态設定為up,up的下一狀态設定為新狀态。

Unity實戰之面闆動畫

選中New State,在轉換條件中選中New State=>down然後添加條件IsMove為true,并且取消勾選Has Exit Time複選框。

Unity實戰之面闆動畫

同樣的操作,把down的轉換條件添加IsMove,但設定為false,并且不勾選Has Exit Time複選框。隻勾選up的Has Exit Time複選框。

Unity實戰之面闆動畫

全部儲存,運作即可。