Преобразование значения в датчик времени ожидания (датчик охлаждения)? - PullRequest
0 голосов
/ 01 марта 2019

Я недавно столкнулся со стеной, как новый программист, я не знаю, как с этим справиться.

Это код:

 public class Test : MonoBehaviour
{
    public float minDuration = 1.5f;
    public float maxDuration = 5f;
    public float minValue = 1f;
    public float maxValue = 99f;
    public float currentValue;
    public float waittime;
    public float EVA;
    public Image Waitgauge;



    void Start()
    {
        waittime = Mathf.Round(GetDurationRemaining(minDuration, maxDuration, minValue, maxValue, currentValue) * 10f) / 10f;
        EVA = Evasion(currentValue);
    }




    private void Update()
    { /*
        UpgradeWaitGauge();
        */
    }




    public float GetDurationRemaining(float minDuration, float maxDuration, float minValue, float maxValue, float currentValue)
    {
        float durationGap = maxDuration - minDuration;
        float t = Mathf.InverseLerp(minValue, maxValue, currentValue);

        //Sine easing - Change this equation to match a curve you'd like
        t = Mathf.Sin(Mathf.PI * t * 0.5f);

        return minDuration + ((1f - t) * durationGap);
    }




    /*
     void  UpgradeWaitGauge()
    {
        waittime += Time.deltaTime;
        Vector3 origScale = Waitgauge.transform.localScale;
        origScale.x = Mathf.Clamp(waittime / (waittime - maxDuration), 0, 1);
        Waitgauge.transform.localScale = origScale;
    }
    */





    public float Evasion(float CurrentValue)
    {
        return Mathf.Round((currentValue * 0.30f) *100f / 100f);
    }
}

Я создаю индикатор ожиданияпохожие на те, которые можно найти в серии видеоигр Final Fantasy (4-9,12).Этот код дает время ожидания до следующего поворота на основе значения скорости, которое в данный момент называется просто currentValue.Если вы берете код как есть и заходите в инспектор, вы можете поместить значение в «currentValue», и оно вернет время ожидания.Это работает так, как я этого хочу.

Если вы посмотрите в коде, я закомментировал «Обновить функцию ожидания», потому что именно здесь происходит проблема.Я хотел бы взять время ожидания и изобразить его визуально, в качестве индикатора, который заполняется до полного на основе возвращенного времени ожидания:

, если возвращается время ожидания 2,5 с, то это займет 2,5 с длябар для заполнения.

Если время ожидания 4,7 с вернулось, то его заполнение займет 4,7 с.

Я хотел бы также упомянуть, что индикатор ожидания всегда будет иметь одинаковый размер.

Я работал над этим в течение 11 часов, пытаясь выяснить мой последний выходной.Довольно расстраивает, потому что я действительно заставил это работать с тренировочным кодом, но формула скорости для этого была намного проще.Помощь крайне необходима.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...