Я недавно столкнулся со стеной, как новый программист, я не знаю, как с этим справиться.
Это код:
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 часов, пытаясь выяснить мой последний выходной.Довольно расстраивает, потому что я действительно заставил это работать с тренировочным кодом, но формула скорости для этого была намного проще.Помощь крайне необходима.