ゲージの値を簡単に往復させてみます。
ゲージを作る
まずはヒエラルキーウィンドウでImageを新規作成します。
作られたImageを選択してインスペクタで設定を変更します。Gameビューを見ながら、WidthとHeightを変えるとゲージを形を変えられます。
また、真っ白いだけの画像をインポートして、テクスチャのタイプをSpriteにして、上のImageコンポーネントのSource Imageにドラッグアンドロップします。
Source Imageの下のColorでゲージを色を変えられます。
さらに、ゲージのように動かすために、Image TypeをFilledにします。Fill Amountを0にすると画像が消えて、増加させると画像の見える範囲が増えて行きます。
Fill MethodやFill Originでゲージの動く方向を設定できます。
ゲージの値をスクリプトで変える
Imageにスクリプトを付けて、ゲージの値を変えます。常に値を動かすために、Updateメソッドの中で、時間の値を代入します。
そのときに三角関数を使うことで値を往復させます。
三角関数の式は、Desmos | グラフ計算機で簡単に作れます。このサイトでは、左側に式を入力すると右側にそのグラフが表示されます。
これで適当に式を作りました。ImageのFill Amountに使うので、二乗して0~1の範囲に収まるようにしました。
2乗するときは「^」の後に「2」を入力します。
作った式をスクリプトで、Image.fillAmountに入れます。
- using UnityEngine;
- using UnityEngine.UI;
-
- public class Gauge2 : MonoBehaviour
- {
- Image gauge;
- float sec;
-
- // Start is called before the first frame update
- void Start()
- {
- gauge = GetComponent<Image>();
- }
-
- // Update is called once per frame
- void Update()
- {
- sec += Time.deltaTime;
- gauge.fillAmount = Mathf.Pow(Mathf.Sin(sec + Mathf.Sin(sec + Mathf.Sin(sec * 2))), 2);
- }
- }
これでグラフのようにゲージの値が往復するようになりました。