コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        if (SceneManager.GetActiveScene().name != "BattleCustom" &&
            SceneManager.GetActiveScene().name != "TimeAttackCustom")
        {
            if (firstRun)
            {
                imageNo = imageNo.GetComponent <ImageNo>();

                speedImage = speedImage.GetComponent <Image>();
            }
        }

        //  各ギアでのメーター最小値の割り当て
        float minSpeed = 0f;

        if (carController.CurrentGearNum > 0)
        {
            minSpeed = carController.MaxSpeed[carController.CurrentGearNum - 1];
        }

        // Imageの表示率を最大速度に対する現在の速度で計算する
        var ratio = Mathf.InverseLerp(0f, 1f, (Mathf.Abs(carController.CurrentSpeed) - minSpeed) / (carController.MaxSpeed[carController.CurrentGearNum] - minSpeed));

        // 速度用のImageの最小と最大を補正した値で計算
        speedImage.fillAmount
            = Mathf.Lerp(
                  percentage / carController.MaxSpeed[carController.CurrentGearNum],
                  (carController.MaxSpeed[carController.CurrentGearNum] - percentage) / carController.MaxSpeed[carController.CurrentGearNum],
                  ratio);

        // 現在の速度をテキストに表示する
        imageNo.SetNo(Mathf.FloorToInt(carController.CurrentSpeed), "0");
    }
コード例 #2
0
    // Start is called before the first frame update
    void Start()
    {
        carObj = GameObject.FindGameObjectsWithTag("RacingCar")[playerNo].transform.parent.gameObject;

        m_Car     = carObj.GetComponent <CarController>();
        m_GearTex = m_GearTex.GetComponent <Text>();

        imageNo = imageNo.GetComponent <ImageNo>();
    }