Je fais un jeu avec Unity Engine et je veux un objet soleil pour augmenter la luminosité jusqu'à ce qu'il atteigne un moment précis de la journée, puis commencer à diminuer après ce moment.Faire 50% d'une valeur soit la valeur maximale d'une autre variable (et 0%/100% égale à la valeur minimum)
J'ai la journée représentée comme une valeur en pourcentage (0 à 1) des heures de jour comme ceci:
float currentTime = 0.50f; //50% = noon, 0%/100% = midnight
float dayRange = 0.75f - 0.25f; //Daylight hours = 25% to 75% (6:00 to 18:00)
float dayPercent = (currentTime - 0.25f)/dayRange; //Current time between the daylight hours as a percentage.
float maxSunLight = 10f;
float currentSunLight = 5f;
Ce que je veux:
Lorsque dayPercent
est compris entre 0 et 0,5, currentSunLight
passera de 0 à 10.
Lorsque dayPercent
est compris entre 0,5 et 1, currentSunLight
diminue de 10 à 0.
J'ai une manière désordonnée de faire ceci, mais je suis sûr qu'il y a probablement une fonction mathématique simple pour ceci?
Edit: Juste pour inclure mon « désordre » façon
if(dayPercent <= 0.50f){
currentSunLight = (dayPercent * 2)/maxSunLight * 100;
} else {
currentSunLight = (dayPercent/2)/maxSunLight * 100;
}
Trigonométrie FTW –