(Unity6)ガス欠(ガスメータ)の実装

(サンプルコード)

using UnityEngine;
using UnityEngine.UI;

public class Tank_Input : MonoBehaviour
{
    public float moveSpeed;
    public float turnSpeed;

    private float gas;
    private float maxGas = 20;
    public Slider gasSlider;

    // ★インプットシステム
    private InputSystem_Actions isa;

    private void Start()
    {
        // ★インプットシステム
        isa = new InputSystem_Actions();
        isa.Enable();

        gas = maxGas;
        gasSlider.maxValue = maxGas;
        gasSlider.value = gas;
    }

    void Update()
    {
        // ★インプットシステム
        Vector2 movement2 = isa.Player.Move.ReadValue();
        Vector3 movemnet3 = new Vector3(movement2.x, 0, movement2.y);

        // 前進・後退
        if (gas > 0)
        {
            transform.Translate(Vector3.forward * movemnet3.z * Time.deltaTime * moveSpeed);
        }

        // 旋回
        transform.Rotate(Vector3.up * movemnet3.x * Time.deltaTime * turnSpeed);

        // ★ガスメーター
        if (movemnet3.z != 0)
        {
            gas -= 0.05f;
            gasSlider.value = gas;

            if (gas < 0)
            {
                gas = 0;
            }
        }
        else
        {
            gas += 0.07f;
            gasSlider.value = gas;

            if (gas > maxGas)
            {
                gas = maxGas;
            }
        }
    }
}

(実装結果)