UnityのUGUIを学ぶ(7):スライダー(Slider)

スライダーとは何ですか?

スライダー コントロールを使用すると、ユーザーはマウスを使用して所定の範囲内の値を調整できます。ここに画像の説明を挿入します

階層ビューを右クリックし、[UI] -> [スライダー] をクリックしてスライダーを作成します。
ここに画像の説明を挿入します
上の図は、Unity の組み込みスライダーの構造です。もちろん、よりパーソナライズされたスライダーを自分で作成することもできます。ただし、その前に、Slider コンポーネントを理解する必要があります。

特性と機能

ここに画像の説明を挿入します

属性 関数
インタラクション可能 コンポーネントが入力を受け入れるかどうかを制御します。チェックされていない場合、コンポーネントはスライドできません。
遷移 スライダーがユーザー操作に応答する方法を制御するために使用されます
ナビゲーション UI コントロールの制御に使用されるキーボード ナビゲーションを実装する方法
四角形を塗りつぶす コントロール領域を満たすグラフィック。
ハンドル長方形 グラフィックの「処理」セクション、スライダー上のスライダーをスライドさせます。
方向 スライダーを移動したときにスライダーの値が増加する方向。オプションには、左から右、右から左、下から上、および上から下が含まれます。
最小値 スライダースライドの最小値
最大値 スライダーのスライド量の最大値
整数 スライダー値が整数値に制限されているかどうか
価値 スライダーの現在の値。スライダーをスライドさせると、Value の値も変化します。逆に。

イベント

属性 関数
値が変更されたとき スライダーの値が変更されるたびに呼び出されます。 float 型の値は、整数プロパティが有効かどうかに関係なく渡されます。

ここに画像の説明を挿入します

注:ハンドルは取り外し可能ですが、必要ありません。調整を削除した後は、コードを通じてスライダーの動きを制御できるようになります。

スライダー構造

ここに画像の説明を挿入します

上の図から、Unity の組み込みスライダーは主に 3 つの部分で構成されていることがわかります。1 つは最下層の背景、次に塗りつぶし、そしてハンドルです。

次にスライダーを自分で実装します。

まず、Canvas の下に空のゲーム オブジェクトを作成します。
ここに画像の説明を挿入します
この空のゲーム オブジェクトの下に Image コントロールを作成し、その名前を「Background」に変更し、スライダーの基礎となる背景として幅と高さを調整します。
ここに画像の説明を挿入します

次に、塗りつぶされた背景としてこの空のゲーム オブジェクトに Fill という名前の Image コントロールを作成し、色を赤に設定し、サイズを調整します。
ここに画像の説明を挿入します

次に、この空のゲーム オブジェクトの下に Handle という名前の Image コントロールをスライダーとして作成し、黒に設定し、それに応じてサイズを調整します。
ここに画像の説明を挿入します

この空のゲーム オブジェクトに Slider コンポーネントを追加します。
ここに画像の説明を挿入します

コンポーネントの値を設定すると、SceneビューのFillとHandleが変形していることがわかりますが、このときサイズを調整する必要があります。
ここに画像の説明を挿入します

まず、値を最大値に調整します。
ここに画像の説明を挿入します
次に、塗りつぶしとハンドルを調整します。これは完成したと考えてよいでしょう。実行後、それに応じて Value の値をスライドして調整できることがわかります。もちろん、これは比較的単純で、これらのコンポーネントに画像を追加して美しくすることができます。
ここに画像の説明を挿入します

注: 上記のハンドルは必要なく、追加する必要もありません。コードを通じてスライダーの動きを制御できます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SliderController : MonoBehaviour {
    
    

    private Slider silder;

    void Start() {
    
    
        silder = GetComponent<Slider>();
    }

    void Update() {
    
    

        silder.value+= 0.1f * Time.deltaTime;
    }

}

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_39520967/article/details/107270057