[DB AL] Problème de contrôle de caméra & Vector3

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
Avatar de l’utilisateur
VertoDebru
Messages : 9
Inscription : 27 Août 2015 00:53

[DB AL] Problème de contrôle de caméra & Vector3

Message par VertoDebru » 01 Juin 2016 17:32

Bonjour,

Voila j''essaye de faire un déplacement de la camera avec le bouton 3 de la souris, le seul problème c'est qu'il ne déplace la caméra vers le haut et ne prends pas en compte quand je déplace le curseur vers le bas.

Code : Tout sélectionner

    public Vector3 screenPos;
	    
    public void MoveCam(Vector3 pos)
    {
            Vector3 mousePos = Input.mousePosition;
            Vector3 curPos = myCam.ScreenToViewportPoint(Input.mousePosition + mousePos);
            Vector3 mPos = new Vector3(curPos.x * camSpeed, curPos.y * camSpeed, 0);
            screenPos = new Vector3(mPos.x, mPos.y, 0);
            myCam.transform.Translate(screenPos);
    }
Une solution ? :pascontent:

Merci.

MODO : merci de lire la netiquette et respecter les consignes d'intitulés de post

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: Problème de contrôle de caméra & Vector3

Message par F@B » 02 Juin 2016 00:50

heuuu tu peux expliquer ligne par ligne ce que tu essayes de faire dans ton script ? ou tu as copié collé des trucs au pifomètre ?

tu fais :

Code : Tout sélectionner

            
            Vector3 mousePos = Input.mousePosition;
           (...)  Input.mousePosition + mousePos);
as tu un minimum de notion de programmation ? :?: :?:
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

Avatar de l’utilisateur
VertoDebru
Messages : 9
Inscription : 27 Août 2015 00:53

Re: Problème de contrôle de caméra & Vector3

Message par VertoDebru » 02 Juin 2016 08:37

F@B a écrit :heuuu tu peux expliquer ligne par ligne ce que tu essayes de faire dans ton script ? ou tu as copié collé des trucs au pifomètre ?

Code : Tout sélectionner

    public Vector3 screenPos;
       
    public void MoveCam(Vector3 pos)
    {
    	    // je prends la position de depart du pointeur.
            Vector3 mousePos = Input.mousePosition; 	
            // j'additionne les 2 positions
            Vector3 curPos = myCam.ScreenToViewportPoint(Input.mousePosition + mousePos);	
            // Je recupere le resultat de la pos du deplacement pour l'ajouter a la vitesse.	
            Vector3 mPos = new Vector3(curPos.x * camSpeed, curPos.y * camSpeed, 0);
            // Je défini donc la position finale
            screenPos = new Vector3(mPos.x, mPos.y, 0);
            myCam.transform.Translate(screenPos);
    }
Bon effectivement y a des erreurs ... c'est surement du a la fatigue : :]
F@B a écrit :as tu un minimum de notion de programmation ? :?: :?:
Oui j'ai fait plusieurs année de ASP/PHP avant de me lancer il y a quelques mois dans le C#.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6265
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB AL] Problème de contrôle de caméra & Vector3

Message par boubouk50 » 02 Juin 2016 09:30

Correction/Avis dans les commentaires:

Code : Tout sélectionner

public Vector3 screenPos;
       
    public void MoveCam(Vector3 pos)
    {
           // je prends la position de depart du pointeur.
            Vector3 mousePos = Input.mousePosition;    
            // j'additionne les 2 positions -> Pourquoi tu multiplies ta position par 2? ne gère que le pointeur! Après je suis pas calé en viewport space, mais tu as un résultat entre 0 et 1, ce qui me semble bizarre.
            Vector3 curPos = myCam.ScreenToViewportPoint(Input.mousePosition + mousePos);   
            // Je recupere le resultat de la pos du deplacement pour l'ajouter a la vitesse.   
            Vector3 mPos = new Vector3(curPos.x * camSpeed, curPos.y * camSpeed, 0);
            // Je défini donc la position finale -> tu redéfinis exactement mPos > inutile
            screenPos = new Vector3(mPos.x, mPos.y, 0);
            //Translate: il faut donner le deltaPos pas la position finale!
            myCam.transform.Translate(screenPos);
    }
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
VertoDebru
Messages : 9
Inscription : 27 Août 2015 00:53

Re: [DB AL] Problème de contrôle de caméra & Vector3

Message par VertoDebru » 02 Juin 2016 09:46

Je viens de me rendre compte que j'avais déjà une variable mPos qui renvoyais un Input.mousePosition, donc ça devait faire un conflit ...

Cela dit ça fonctionne maintenant :

Code : Tout sélectionner

            Vector3 curPos = myCam.ScreenToViewportPoint(Input.mousePosition - mPos);
            Vector3 movePos = new Vector3(curPos.x * camSpeed * 30, curPos.y * camSpeed * 30, 0);
            myCam.transform.Translate(movePos);
Si vous avez des idées pour optimisé tout ça je suis preneur :)

P.S: J'ai vraiment fais n'importe quoi hier, trop de code, tue le code ^^

Avatar de l’utilisateur
VertoDebru
Messages : 9
Inscription : 27 Août 2015 00:53

Re: [DB AL] Problème de contrôle de caméra & Vector3

Message par VertoDebru » 03 Juin 2016 15:34

Bon je reviens vers vous car je viens de me rendre compte que je n'avais pas mis ma camera en orthographic hors je pense que pour un jeu en 2D c'est préférable je pense. :?

Du coup mon script ne fonctionne plus une idée de commande pour régler le problème ?

J'ai essaye de récupérer avec un Input.GetAxis("Mouse Y") et ("Mouse X") mais le problème est qu'il fait un déplacement continu dès que j'appuie sur le bouton "Mouse3".

Répondre

Revenir vers « (C#) CSharp »