void Update() { if (torch.isSelected == true) { if (Input.GetKeyDown(KeyCode.Q)) { Debug.Log(torch.isSelected); isOn = !isOn; if (obj.getCurrentObj() == null) { return; } if (isOn) { currentTimeOfTorchLife = ssr.GetRemainLifeTorch(); if (obj.ammo[0] > 0) { fireLight.enabled = true; fire.Play(); obj.ammo[0]--; UI.UpdateResources("Matches", -1); } } else { fireLight.enabled = false; fire.Stop(); ssr.SetRemainLifeTorch(currentTimeOfTorchLife); if (obj.ammo[0] == 0) { Debug.Log("Sono finiti i fiammiferi"); } } } if (isOn) { currentTimeOfTorchLife -= decrementRate * Time.deltaTime; //Debug.Log(Mathf.Round(currentTimeOfTorchLife)); //fadelight if (currentTimeOfTorchLife <= fireTimeLeftTot) { fireLight.DOIntensity(0f, fireTimeLeftTot); for (int i = 0; i < firech.Length; i++) { if (startRate == 0f) { startRate = firech[i].emission.rateOverTime.Evaluate(1f); //Debug.Log("startrate assigned value: " + startRate); fireTimeLeft = fireTimeLeftTot; } if (firech[i].emission.rateOverTime.Evaluate(1f) > 0) { var emission = firech[i].emission; emission.rateOverTime = Mathf.Clamp(Mathf.Lerp(0f, startRate, fireTimeLeft / fireTimeLeftTot), 0f, startRate); //Debug.Log("Emission: " + firech[i].emission.rateOverTime.Evaluate(1f) + "firetimeleft: " + fireTimeLeft); } } fireTimeLeft -= decrementRate * Time.deltaTime; } //end fadelight } if (currentTimeOfTorchLife <= 0) { int i = obj.getCurrentIndex(); obj.pickLoadout[i].isSelected = false; obj.pickLoadout[i] = null; Destroy(obj.getCurrentObj()); UI.ActiveWeapon(3); UI.UpdateWeapons("", i); } } if (torch.isSelected == false) { ssr.SetRemainLifeTorch(currentTimeOfTorchLife); } }