在 RealityKit 內建的幾種動作當中,功能最豐富的應該是 FromToByAction,這是個通用化的動作物件,只要是可用內插法分解的個體參數,都能製作動畫效果。
目前支援的參數類型包括:
FromToByAction 的本義是「從(From)、到(To)、差值(By)」三個條件,三者可單獨使用,也能並用。
例如,以個體的透明度(opacity)為例,假設個體原本的透明度為 1.0 (完全不透明),單獨設定三種條件的預期結果如下:
動作# | 參數 | 含義 | 結果 |
---|---|---|---|
1 | from: 0.1 | 從0.1回到原值 | 動作會從 opacity = 0.1 逐漸回到 1.0 |
2 | to: 0.1 | 從原值變到0.1 | 動作會從 opacity = 1.0 逐漸降到 0.1 |
3 | by: -0.1 | 從原值降0.1 | 動作會從 opacity = 1.0 逐漸降到 0.9 |
不過要注意,實際寫程式時,FromToByAction 有個隱藏陷阱。若按一般習慣寫:
let 淡出 = FromToByAction(to: 0.1)
語法雖然正確,但執行時可能完全沒有動畫效果。
正確的寫法要改成:
let 淡出 = FromToByAction<Float>(to: 0.1) // 官方文件寫法
或
let 淡出 = FromToByAction(to: Float(0.1)) // 本節範例寫法