IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unity Discussion :

centre du repère en haut à gauche


Sujet :

Unity

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 0
    Points
    0
    Par défaut centre du repère en haut à gauche
    Salut à tous,

    Je vous envoie ce message pour savoir comment mettre l'origine du repère en haut à gauche (X=0, Y=0 et Z=0).
    Les axes du X partiront de 0 (en haut à gauche) jusqu'au width de la tablette(Screen.width, 0).
    Les axes du Y partiront de 0 (en haut à gauche) jusqu'au height de la tablette (0, Screen.height).

    J'ai éssayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class repere : MonoBehaviour {
    	private Vector3 mousepos;
     
    	void OnMouseDown()
    	{
     
    	mousepos = Input.mousePosition;
    		Ray ray = Camera.main.ScreenPointToRay(mousepos);
            print(ray);
    	}
    }
    Mais celui-ci renvoie tout le temps les mêmes chiffres.

    Voici une image qui montre comment je voudrais que mon repère soit:


    Merci beaucoup pour votre aide,

    A+

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 136
    Points : 33 095
    Points
    33 095
    Billets dans le blog
    4
    Par défaut
    Tu prends ton 0 actuel, c'est le centre avec Unity je crois ?
    Et tu fais une translation (additions).

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 0
    Points
    0
    Par défaut
    Je ne trouve pas de 0, moi je cherche d'afficher un 0 dans l'angle supérieur gauche.
    Voici mon code (que j'ai récupéré sur google).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class repere : MonoBehaviour
    {
        public Transform target;
        Camera cam;
     
        void Start()
        {
            cam = GetComponent<Camera>();
        }
     
        void Update()
        {
            Vector3 screenPos = cam.WorldToScreenPoint(target.position);
            Debug.Log("target is " + screenPos.x + " pixels from the left");
        }
    }
    Malheureusement la console affiche ceci :


    La console n'affiche que cette valeur, et ne change pas si l'on clique ou si l'on bouge la souris.

    Merci à vous,

    A+

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 480
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 480
    Points : 20 729
    Points
    20 729
    Par défaut
    Citation Envoyé par julius1983 Voir le message
    Je ne trouve pas de 0, moi je cherche d'afficher un 0 dans l'angle supérieur gauche.
    j'ai l'impression que vous n'avez pas compris qu'en 3d le système de coordonnées n'est pas du tout le même qu'en 2d bref en coordonnées écran.
    Pour construire un champs de vision en 3d l'API de rendu effectue un certain nombre de calculs et on ne raisonne plus en pixels mais en vecteur de norme 1 à condition que le repère soit orthonormé.
    Si vous voulez déplacer un objet par exemple au coin gauche supérieur de l'écran donc en 2d de coordonnées (0,0),vous êtes en trois dimensions pas en deux dimensions

    Citation Envoyé par julius1983 Voir le message
    Salut à tous,
    Je vous envoie ce message pour savoir comment mettre l'origine du repère en haut à gauche (X=0, Y=0 et Z=0).
    A+
    rebelote en 3d on est dans un repère orthonormé avec un vecteur X , une vecteur Z qui décrivent un plan horizontal et un vecteur X pour l'élévation.
    Grosso modo le repère a pour centre le centre de l'écran à l'initialisation sauf si on déplace la caméra évidemment.
    Donc je vous conseille vivement de consulter la documentation d'Unity et les principes de base de la 3d temps réel.

    Cependant si votre besoin c'est de placer des objets comme pour un écran 2d alors il suffit de placer la caméra à une certaine élévation Z et elle doit "regarder" verticalement vers le centre de la scène.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     void Update()
        {
            Vector3 screenPos = cam.WorldToScreenPoint(target.position);
            Debug.Log("target is " + screenPos.x + " pixels from the left");
        }
    il faut placer la caméra en vue "top-down" c.a.d.position au centre de la scène et l'objectif de la caméra regardant le centre de la scène.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 170
    Points : 0
    Points
    0
    Par défaut
    Merci pour ton aide mais je ne comprend pas ce que tu veux dire par
    il faut placer la caméra en vue "top-down".
    Je crois comprendre qu'il s'agit d'utiliser le gyzmo en faisant un clic droit mais je n'obtiens que Top et pas Down (voir image ci-dessous).



    Je travaille en mode 3D, et j'espère que le mode "top-down" réagirait comme en mode 2D (le centre du repère en haut à gauche),

    Merci à vous,

    A+

  6. #6
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 480
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 480
    Points : 20 729
    Points
    20 729
    Par défaut
    bonsoir oui c'est ça c'est la pleine verticale.
    A partir du moment où la caméra est bien centrée sur la scène normalement les coordonnées souris X,Y deviennent quasiment les coordonnées X,Z

Discussions similaires

  1. Comment changer l'icone Delphi en haut à gauche ?
    Par melles dans le forum Débuter
    Réponses: 2
    Dernier message: 12/09/2007, 22h49
  2. Curseur modifié (customiser) s'affiche en haut à gauche de l'anim
    Par Dsphinx dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 13/08/2007, 16h25
  3. Récupérer les coordonnées (haut gauche) d'une cellule ou d'un div
    Par pcayrol dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2007, 15h49
  4. Réponses: 3
    Dernier message: 14/03/2007, 16h25
  5. [JFrame] Ouverture fenêtre autre part que dans coin haut gauche
    Par tooney dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 28/05/2005, 21h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo