[ Résolu ]Viseur suit la souris en 2D

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

[ Résolu ]Viseur suit la souris en 2D

Message par Kamiloo95 » 23 Oct 2015 22:45

Bonjour à tous,
comme écris dans le titre, je voudrais faire en sorte que mon viseur suive ma souris.
Donc j'ai créé un viseur basique sous forme d'image dans un UI.RawImage et j'ai créé un script avec cette ligne de code :

Code : Tout sélectionner

gameObject.transform.position = Input.mousePosition;
Le probleme c'est que plus tard, je créerai un RaycastHit qui partira de mon joueur pour aller jusqu'au viseur et ainsi tuer les ennemis.
Donc je ne peut pas faire mon viseur sous forme d'UI et je n'arrive pas à faire en sorte que mon viseur sous forme d'objet suive ma souris.

Merci d'avance.

Image
Dernière édition par Kamiloo95 le 05 Nov 2015 23:29, édité 1 fois.

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Viseur suit la souris en 2D

Message par Kamiloo95 » 24 Oct 2015 20:21

up

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Viseur suit la souris en 2D

Message par Max » 24 Oct 2015 20:43

Bonsoir,
Kamiloo95 a écrit :Donc je ne peut pas faire mon viseur sous forme d'UI et je n'arrive pas à faire en sorte que mon viseur sous forme d'objet suive ma souris.
Je ne suis pas sûr d'avoir saisi le fond de ton problème.
Si ton réticule est un sprite, tu peux le positionner avec ce genre de code (perso, je ne fait pas de 2D, donc pas expert, re-donc à tester)

Code : Tout sélectionner

			mousePosition = Input.mousePosition;
			Vector3 pos =  Camera.main.ScreenToWorldPoint(mousePosition);
			pos.z=0;
			transform.position = pos;
Image
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

Xann_71
Messages : 93
Inscription : 23 Juin 2015 22:25
Localisation : Le puy en velay

Re: Viseur suit la souris en 2D

Message par Xann_71 » 25 Oct 2015 12:30

Alors je ne veux pas dire de bétises mais si ton réticule tel que tu l'a programmé fonctionne bien, tu devrais le laisser comme ça.
As tu essayé d'associer un empty en enfant à ton réticule afin que cet empty suive le réticule et qu'il te permette d'orienter ton tire?

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Viseur suit la souris en 2D

Message par Kamiloo95 » 25 Oct 2015 23:18

J'ai esssayé la methode de Max mais sans résultat malheureusement, je pense que créer un empty est une facon "barbare" mais qui peut fonctionner.
Je vous dirai si cela a fonctionné

Merci

Avatar de l’utilisateur
Titan
Messages : 582
Inscription : 12 Sep 2011 13:54
Contact :

Re: Viseur suit la souris en 2D

Message par Titan » 26 Oct 2015 13:32

Vous prenez pas la tête avec des solutions compliqué pour un problème aussi simple.
Tu créer un gameObject qui contient un sprite et un script, dans le sprite tu met ton image de réticule, dans le script tu met une fonction Update qui modifie sa position avec un truc qui ressemble fortement au code de Max. pour ton vecteur de direction de tir, tu n'a plus qu'a te faire une property avec (reticule.position - player.transform.position).normalized et c'est finit.

Au lieu de dire "ça marche pas" et de passé à une méthode "barbare qui peut fonctionner", log la position du gameobject, log la position de la souris, et relis la doc de la fonction, debug et tu devrais voir immédiatement ce qui cloche. (Ca marche chez les autres.)
____________________________________________
Hop Boy

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Viseur suit la souris en 2D

Message par Kamiloo95 » 05 Nov 2015 22:35

Voila donc j'ai suivi le conseil de Titan, voici mon script pour le moment :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class MousePositionCursor : MonoBehaviour {

	Vector3 posMouse;

	// Use this for initialization
	void Awake () {

		posMouse = Camera.main.ScreenToWorldPoint(Input.mousePosition);
	}
	
	// Update is called once per frame
	void Update () {
	
		posMouse.z = 0;
		gameObject.transform.position = posMouse;
	}
}
Mais malheureusement, mon viseur ne bouge pas d'un poil.
Ca fait assez longtemps que je cherche et je suis pas mal sur que j'ai fait une petite erreur bête...

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Viseur suit la souris en 2D

Message par Max » 05 Nov 2015 23:02

Bonsoir,
Kamiloo95 a écrit :Mais malheureusement, mon viseur ne bouge pas d'un poil.
Normal, tu récupère ta position dans la fonction Awake, qui n'est exécutée qu'une fois et au démarrage de l’application.
Pour être efficace, cela doit être actualisé en permanence, donc tu dois plutôt placer l'ensemble dans Update.
Image
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

Répondre

Revenir vers « (C#) CSharp »