Bonjour,
Je voudrais tracer une ligne qui suit la souris, un peu comme si on voulait écrire sur l'écran avec la souris.
J'ai pensé que cela pouvait être possible avec les shaders mais malgré mes recherches je n'ai pas trouvé l'ombre d'un renseignement.
Si quelqu'un pouvait me donner une idée sur la direction à emprunter, pour obtenir ce résultat avec les shaders ou autre.
Merci d'avance.
[Resolu]Tracer une ligne qui suit la souris
[Resolu]Tracer une ligne qui suit la souris
Dernière édition par EmileF le 02 Juin 2020 19:53, édité 1 fois.
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: Tracer une ligne qui suit la souris
Juste une précision, tu veux tracer une ligne sur UI c'est à dire en 2D? Et non pas dans le 3D?
Re: Tracer une ligne qui suit la souris
Salut DevAmat,
Je suis en train d'y travailler dessus et en fait, j'utilise la technique de la texture dynamique.
Le but était de suivre un chemin comme dans un labyrinthe, de laisser une trace du chemin parcouru, et de pouvoir revenir en arrière.
J'avoue que Djulio m'a été d'un grand secours.
Je posterai le résultat quand ce sera terminé.
Merci
Je suis en train d'y travailler dessus et en fait, j'utilise la technique de la texture dynamique.
Le but était de suivre un chemin comme dans un labyrinthe, de laisser une trace du chemin parcouru, et de pouvoir revenir en arrière.
J'avoue que Djulio m'a été d'un grand secours.
Je posterai le résultat quand ce sera terminé.
Merci
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: Tracer une ligne qui suit la souris
Hello,
Je ne sais pas quelle solution vous avez adopté, mais perso, j'aurais regardé du coté du Component Trail Renderer, cela pourrait être une solution. A tester.
Je ne sais pas quelle solution vous avez adopté, mais perso, j'aurais regardé du coté du Component Trail Renderer, cela pourrait être une solution. A tester.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Tracer une ligne qui suit la souris
Salut à tous.
Visuellement, le but recherché par Émile ressemble fortement au snake des vieux Nokia,
Un chemin qui se trace carré par carré, mais sans la longueur fixe comme dans snake.
Le problème du trailRendere je pense est la non possibilité de revenir en arrière.
Vu le côté 2d de la chose, j'ai proposé de simplement dessiner une texture, ou chaque pixel représente une unité de déplacement.
Mais EmileF vous montrera sans doute ça quand il aura aboutis.
Visuellement, le but recherché par Émile ressemble fortement au snake des vieux Nokia,
Un chemin qui se trace carré par carré, mais sans la longueur fixe comme dans snake.
Le problème du trailRendere je pense est la non possibilité de revenir en arrière.
Vu le côté 2d de la chose, j'ai proposé de simplement dessiner une texture, ou chaque pixel représente une unité de déplacement.
Mais EmileF vous montrera sans doute ça quand il aura aboutis.
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: Tracer une ligne qui suit la souris
Bonsoir,
Voilà la base du script permettant de tracer un trait en suivant la souris.
Il faut :
que la textureCurrent soit renseignée dans l'Inspector.
que l'option Read/Write Enabled dans l'import setting de la texture soit cochée
et que le Filter Mode soit à : Point(no filter)
pour que la texture soit modifiable.
En espérant que ce soit utile à quelqu'un
Voilà la base du script permettant de tracer un trait en suivant la souris.
Il faut :
que la textureCurrent soit renseignée dans l'Inspector.
que l'option Read/Write Enabled dans l'import setting de la texture soit cochée
et que le Filter Mode soit à : Point(no filter)
pour que la texture soit modifiable.
Code : Tout sélectionner
Camera cam;
public Texture2D textureCurrent;
int tailleNiveau;
Vector2Int LastPoint;
void Start()
{
cam = Camera.main;
transform.localPosition = new Vector3(0.5f, 0, 0.5f);
Initialise();
}
void Update()
{
RaycastHit hit;
if (Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit))
{
int X = Mathf.FloorToInt(hit.point.x * tailleNiveau);
int Y = Mathf.FloorToInt(hit.point.z * tailleNiveau);
Vector2Int contact = new Vector2Int(X, Y);
if (Vector2.Distance(LastPoint, contact) == 1)
{
if (textureCurrent.GetPixel(X, Y) == Color.black)
{
textureCurrent.SetPixel(X, Y, Color.white);
textureCurrent.Apply();
LastPoint = contact;
}
else if (textureCurrent.GetPixel(X, Y) == Color.white)
{
textureCurrent.SetPixel(LastPoint.x, LastPoint.y, Color.black);
textureCurrent.Apply();
LastPoint = contact;
}
}
}
}
void Initialise()
{
tailleNiveau = textureCurrent.width;
textureCurrent.filterMode = FilterMode.Point;
GetComponent<Renderer>().material.mainTexture = textureCurrent;
for (int x = 0; x < tailleNiveau; x++)
{
for (int y = 0; y < tailleNiveau; y++)
{
textureCurrent.SetPixel(x, y, Color.black);
}
}
LastPoint = new Vector2Int(0, 0);
textureCurrent.SetPixel(0, 0, Color.white);
textureCurrent.Apply();
}
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: [Resolu]Tracer une ligne qui suit la souris
Super, merci d'avoir poster ta solution