Я пытаюсь изменить интенсивность света, пока игрок держит клавишу.
Удерживая клавишу в окне инспектора, интенсивность света изменяется, пока я удерживаю клавишу нажатой (я тоже пробовал без сопрограмм и не работал), но интенсивность изменяется только на Inpsector, когда на сцене или в игре ничего не происходит .
В тот момент, когда я отпускаю клавишу, свет применяет новое значение интенсивности, но то, что мне действительно нужно, применяется, пока я держу клавишу.
Кто-нибудь может мне помочь? Спасибо!
Код:
public class LightBulbController : MonoBehaviour
{
public Light myLight;
//Intensity Variables
public bool changeIntensity = false;
public float intensitySpeed = 1.0f;
public float maxIntensity = 10.0f;
float startTime;
bool startedCo = false;
private void Start()
{
startTime = Time.time;
}
private void Update()
{
/*if (changeIntensity)
{
myLight.intensity = Mathf.PingPong(Time.time * intensitySpeed, maxIntensity);
}*/
if (Input.GetKey(KeyCode.UpArrow))
{
if (!startedCo)
{
StartCoroutine(LerpLight());
startedCo = true;
}
}
}
IEnumerator LerpLight()
{
float duration = maxIntensity;
float totalTime = 0;
while (totalTime <= duration)
{
totalTime += Time.deltaTime;
myLight.intensity = totalTime * intensitySpeed;
yield return null;
}
}
}