Unity 室內設計-開門功能

 

整理基本模型

1. 展開 Apartment 物件將底下的門都拖曳搬出成為獨立物件,可建立 Doors 空物件來放門的物件,以方便管理。

2.開始建立開門/關門的動畫這裡使用 door03 物件來示範後續將依照此製作方式的概念來製作其他種類的門,將 door03 物件 Unpack 段開連結並在 door03 下新增兩個空物件當作門板 (A) 與門把 (B) 的轉軸中心(如果模型的軸向中心正確則不需要此步驟),並將結構調整為如下圖方式。★

 

建立觸發區

1. 開啟 [ HurricaneVR > Framework > Models ] 資料夾,將 SocketOval 物件拖曳到 A 軸物件底下成為子物件並且調整位置與大小,接著新增一個 Box Collider 並調整位置與大小再將 Is Trigger 勾選起來。

2.將 SocketOval 物件複製並移動Z軸到約-0.05,再將Y軸旋轉 180 度,如下圖:

3.將兩個SocketOval 重新命名為 SocketOval_Out (外側) 與 SocketOval_In (裡側),完成。

建立動畫

1. 在選擇 door03 物件的狀態下打開 Animation 視窗並按下 Create 建立動畫檔命名為 door03_Open 並按下存檔。

按下錄製並開始 "拖曳時間軸" 與 "旋轉或開啟關閉物件" 來製作開門動畫。

2. 將製作完成的 door03_Open 複製產生第二個動畫,重新命名為 door03_Open_Idle 與 door03_Close ,接著看到 Inspector 屬性編輯器 (還在選取 door03 物件的狀態下) 在 Controller 欄位開啟 door03 動畫控制器即可打開 Animator 視窗。

3. 將 door03_Open_Idle 與 door03_Close 動畫拖曳到 Animator 視窗並且連結起來,接著將左側分頁切換到 Parameters 新增一個 Play (Trigger) 參數,如下圖所示:


4. 點選各動畫之間連結的線並修改為以下圖示設定,三條連結皆相同。


5. 回到 Animation 視窗並將動畫切換到 door03_Open_Idle 在將第一格以外的動畫影格都刪除,再將時間軸調整到 0:01 然後點擊兩次上方的深灰色影格條即可複製出一格。

切換到 door03_Close 並將影格全選接著將 0:00 格左側的拖曳條拖曳到 6:00 (變成右側) 如下圖:

 

接著再拖曳第一個影格回到 0:00 如下圖:

完成。


建立控制腳本

1. 建立 VR_Animator.cs 腳本,程式碼如下:★


public Animator m_Animator;

void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Hand")
{
m_Animator.SetTrigger("Play");
}
}

2. 將編輯好的 VR_Animator 腳本元件套用到 SocketOval_Out 與 SocketOval_In 物件上並將 door03 物件拖曳到 Animator 欄位中,按下 Play 測試是否正常執行。完成!