Unity3D ITween – Tween Value Percentage

簡介

一般在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方法。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *