J'essaye de créer un script, (qui est en fait une extension de GameObject, mais c'est pas là le problème, mais ça explique le "this GameObject objet", pour ceux qui ne connaîtraient pas).
Ce script est sensé me créer un LineRenderer à partir de l'objet et jusqu'à la position cible.
Cette ligne doit progressivement changer de couleur.
La ligne s'affiche bien, mais la couleur reste désespérément grise et les couleurs colorstart, et colorend ne sont pas appliquées.
Dans le script, il y a 2 versions pour générer le gradient, aucune des 2 ne marche.
Je n'arrive pas à trouver le bas qui blesse, est-ce que quelqu'un pourrait m'aider s'il vous plait.
J'ai essayé en mode édition et ça ne marche pas non plus. Il doit y avoir quelque chose qui m'échappe
Code : Tout sélectionner
public static void DrawLine(this GameObject objet, Vector3 cible, Color colorstart, Color colorend)
{
LineRenderer lr = objet.GetComponent<LineRenderer>();
if (lr == null)
{
objet.AddComponent<LineRenderer>();
lr = objet.GetComponent<LineRenderer>();
}
if (lr.material == null)
{
lr.material = new Material(Shader.Find("Sprites/Default"));
}
lr.startWidth = 0.1f;
lr.endWidth = 0.1f;
lr.SetPosition(0, objet.transform.localPosition);
lr.SetPosition(1, cible);
//Version 1
//float alpha = 1.0f;
Gradient gradient = new Gradient();
//gradient.SetKeys(
// new GradientColorKey[] { new GradientColorKey(colorstart, 0.0f), new GradientColorKey(colorend, 1.0f) },
// new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) }
//);
//Version 2
gradient.colorKeys = new GradientColorKey[]
{
new GradientColorKey(colorstart, 0.0f),
new GradientColorKey(colorend, 1.0f)
};
lr.colorGradient = gradient;
}