je l'animation suivante:Unity3D - Comment contrôler Light.Intensity sans animation
Voir sur la vidéo: Animation Light
Note: Ci-dessous l'image du contrôle d'animation
Comment puis-je obtenir le même résultat en utilisant un script? Mon intention est que le script n'a pas de "si".
Ne pas comme ça:
public float minIntensity;
public float maxIntensity;
public float intensityAmount;
private Light light;
void Awake(){
light = GetComponent<Light>();
}
void Update(){
if (light.intensity > maxIntensity) {
light.intensity -= intensityAmount * Time.deltaTime;
}
else if (light.intensity < minIntensity) {
light.intensity += intensityAmount * Time.deltaTime;
}
}
Je me demande s'il y a une possibilité de le faire en utilisant une fonction native ... comme: (Math.Clamp, Math.Lerp, Quaternion .Slerp) sans condition comme "si" dans le code.
Merci d'avance.
Merci pour la réponse, ce n'est pas clair pour vous? S'il vous plaît voir la vidéo et voir le contrôle du rétroéclairage. Il fonctionne partiellement, il a besoin de la valeur pour travailler à partir de 4! intensité MIN = 4 intensité MAX = 7. Interpole entre ces valeurs. – IgoR
@igao, vous pouvez utiliser une 'baseMagnitude' de 5.5 et une 'varMagnitude' de 1.5, donc: light.Intensity = baseMagnitude + Mathf.Sin (Time.timeSinceLevelLoad * Frequency) * varMagnitude; // De cette façon, la valeur de l'équation sera sur votre plage désirée (5.5 - 1.5 = 4 et 5.5 + 1.5 = 7) – mayo