光强度仅适用于getkeyup而不适用于getkey

时间:2019-05-09 17:22:48

标签: unity3d

我正在尝试在玩家按住键的同时更改光强度。

在按住检查器窗口的键的同时,按住我的键,光强度​​会发生变化(我也尝试不使用协同例程,但也不起作用),但是强度仅在场景或游戏中的侦察器上发生变化

当我松开按键时,灯光会应用新的强度值,但是我真正需要的是在按住按键时应用。

有人可以帮助我吗?谢谢!

代码:

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;
        }
    }
}

0 个答案:

没有答案