簡介
一般在Unity中使用ITween的大部分都是使用在場景中的實體物件上,例如GameObject、Camera的位移旋轉等,在之前我有介紹過基礎篇以及UGUI篇,但有時候我們想要要在Tween更細節的東西,例如顏色、數值,因此我們這篇就來講講使用ITween來Tween數值並應用在UGUI的ProgressBar中。
程式解析
ValueTo (GameObject target,Hashtable args);
上述的 ValueTo() 是主要的使用方法,而上圖的表格中主要是在說明 Hashtable 此類別的 Table 參數。而此 Hashtable 的資料型態是陣列,所以可以選用以上的參數來加入 Table 中,在新增完之後再把 Hashtable 塞到 ITween.ValueTo() 中。
這邊我來提幾個可以讓 ITween.ValueTo() 能做動的 Hashtabl 參數:
- 首先你一定要先安裝 ITween Plugin
- 新增Hashtable容器 – Hashtable param = new Hashtable();
- 選擇你要Tween的樣式,如下圖所示,且加入程式時可需要變成字串加入
- Tween的數值 from – to
- Tween的時間 Time
- 在Tween的持續做動方法 onupdate
實際執行
在上述簡單介紹這麼多可能大家還是不知道怎樣弄,在下面我就直接拿個範例來實現此程式,我拿會動的數字來介紹。在過往我們在跑進度條會用到百分比的數字顯示,而我們通常在 Upate() 中來跑數字,但這種方法最可以達到跟 ITween 的效果依樣,但會很耗資源,我們先來看看直接呼叫某個方法的效果,也是最一般的做法。
是不是跑的數字比較死板板,所以我們就導入 ITween.ValueTo() ,以下是範例的程式碼。
void Start()
{
//使用喚起函式InvokeRepeating
InvokeRepeating("ActiveSceneObject", 1f, ActiveObject.Count);
}
public void ActiveSceneObject()
{
Hashtable param = new Hashtable();
param.Add("easetype", "linear");
param.Add("from", LoadingBar.fillAmount); //你自己訂起始數值
param.Add("to", sliderValue); //訂最終數值
param.Add("time", 1f);
param.Add("onupdate", "TweenValorSlider");
iTween.ValueTo(gameObject, param);
//這裡的gameobject用個虛設的就好,因為只是要跑數值
}
void TweenValorSlider(float val)
{
LoadingText.text = Mathf.Floor(val * 100) + "%";
}
小結
其實 ITween ValueTo() 可以用的地方還非常多,舉凡在任何資料型態的數值都可以使用上,未來有機會再來研究其他的各種Tween方法。