Créer une infobulle en utilisant un onMouseOver()
Créer une infobulle en utilisant un onMouseOver()
Bonjour à tous,
J'ai un petit problème et j'espère que quelqu'un pourra m'aider. Je débute sur Unity.
Ce que j'aimerai faire c'est quand je passe ma souris sur un objet comme un panneau par exemple, cela affiche des informations complémentaires dans une infobulle (par exemple) contenant du texte où se trouve le curseur de ma souris.
Je vous remercie d'avance pour vos réponses.
J'ai un petit problème et j'espère que quelqu'un pourra m'aider. Je débute sur Unity.
Ce que j'aimerai faire c'est quand je passe ma souris sur un objet comme un panneau par exemple, cela affiche des informations complémentaires dans une infobulle (par exemple) contenant du texte où se trouve le curseur de ma souris.
Je vous remercie d'avance pour vos réponses.
Re: Créer une infobulle en utilisant un onMouseOver()
Hello,
il faut que ton objet ai un collider, pour se faire tu cliques sur l'objet en question, et tu vas dans Component -> Physics -> BoxCollider, par exemple.
Ensuite il te faut un script sur cet objet, avec la fonction OnMouseOver
http://docs.unity3d.com/Documentation/S ... eOver.html
Là dedans tu peux faire ce que tu veux du coup. Par exemple prévenir ta caméra en lui disant "on me survole !".
L'autre solution alternative est de faire un raycast tout droit depuis la position de ta souris, et de récupérer l'objet touché, si c'est le panneau tu réagis en fonction.
http://docs.unity3d.com/Documentation/S ... ycast.html
Il faut toujours le collider sur l'objet, sinon pas de détection.
En vérité le OnMouseOver fait un raycast pour toi.
il faut que ton objet ai un collider, pour se faire tu cliques sur l'objet en question, et tu vas dans Component -> Physics -> BoxCollider, par exemple.
Ensuite il te faut un script sur cet objet, avec la fonction OnMouseOver
http://docs.unity3d.com/Documentation/S ... eOver.html
Là dedans tu peux faire ce que tu veux du coup. Par exemple prévenir ta caméra en lui disant "on me survole !".
L'autre solution alternative est de faire un raycast tout droit depuis la position de ta souris, et de récupérer l'objet touché, si c'est le panneau tu réagis en fonction.
http://docs.unity3d.com/Documentation/S ... ycast.html
Il faut toujours le collider sur l'objet, sinon pas de détection.
En vérité le OnMouseOver fait un raycast pour toi.
Re: Créer une infobulle en utilisant un onMouseOver()
Je te remercie pour ta réponse, je vais regarder ça .
Re: Créer une infobulle en utilisant un onMouseOver()
J'arrive pas à faire apparaitre mon texte sur le curseur de ma souris comme tu me le dis "Là dedans tu peux faire ce que tu veux du coup."
Re: Créer une infobulle en utilisant un onMouseOver()
Tu peux montrer le bout de code qui reconnait le survol de la souris et l'affichage (certainement dans OnMouseOver)
Re: Créer une infobulle en utilisant un onMouseOver()
En fait j'arrive à faire apparaitre du texte avec le survol de la souris, mais ce que je voudrais c'est qu'il s'affiche au niveau du curseur de la souris.
Le code ressemble à cela:
Le code ressemble à cela:
Code : Tout sélectionner
var afficher : boolean = false;
function OnGUI() {
if (afficher == true) {
GUI.Label (Rect (10, 10, 100, 20), "Test");
}
}
function OnMouseOver () {
afficher = true;
}
function OnMouseExit () {
afficher = false;
}
Re: Créer une infobulle en utilisant un onMouseOver()
Le collider sur l'objet est présent? C'est une boite verte normalement. Vérifies qu'il fait bien tout ton objet.
Re: Créer une infobulle en utilisant un onMouseOver()
Mon script marche, je te rassure mais le problème, c'est que je ne sais pas comment afficher mon GUI.Label au niveau du curseur de la souris.
Re: Créer une infobulle en utilisant un onMouseOver()
Il te faut un lien de position pour afficher GUIlabel pour afficher
ton label où tu le souhaites.
Un truc comme ça devrait marcher
ton label où tu le souhaites.
Un truc comme ça devrait marcher
Code : Tout sélectionner
private bool afficher =false;
// Use this for initialization
void Start () {
}
void OnGUI() {
Event e = Event.current;
Vector2 guipos;
guipos.x = e.mousePosition.x;
guipos.y = e.mousePosition.y;
if(afficher )
GUI.Label (new Rect (guipos.x, guipos.y, 100, 20), "Test");
}
void OnMouseOver() {
afficher = true;
}
void OnMouseExit () {
afficher = false;
}
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: Créer une infobulle en utilisant un onMouseOver()
Je te remercie, le script marche très bien en C#, mais je n'arrive pas à le retranscrire en JavaScript. J'ai une erreur.