RETOUR AU SITE UNITY3D-FRANCE Forum Unity3D-France • Afficher le sujet - touche clavier pour geler mvt souris et afficher boutons

touche clavier pour geler mvt souris et afficher boutons

touche clavier pour geler mvt souris et afficher boutons

Messagepar freepl » 15 Juin 2012, 05:36

Bonjour

Dans ma maquette, j'ai un guibutton MENU tout en haut de l'écran.
Quand je clique dessus j'affiche/masque des boutons ( variante1, variante 2, initialisation).
Avec ma souris je me déplace dans ma scène.
Si je veux cliquer sur mon bouton MENU , la caméra suit le mouvement et donc je ne vois plus ma scène mais le ciel.

En cliquant sur la touche Tabulation , je désire afficher les boutons variante1, variante 2, initialisation
ET AUSSI "geler" le déplacement de la caméra le temps d'utiliser ces boutons.
Une fois les boutons cliqués, je reprends le contrôle de la caméra.

Merci
Avatar de l’utilisateur
freepl
 
Messages: 262
Inscription: 20 Mai 2012, 19:33
Localisation: salon de provence

Re: touche clavier pour geler mvt souris et afficher boutons

Messagepar cayou66 » 15 Juin 2012, 06:10

J'ai pas vu un seul "?" dans le thread.
Je n'ai donc pas de réponse puisqu'il n'y a pas de question.
Et la charte, bon sang, même pas un bout de code, on est dans la section Scripting.

C'est de pire en pire...
-===Creative lifestyle===-
Visitez mon site ! http://www.cayou-prod.com
Tutoriels GUI d'Unity (entre autres): http://cayou-prod.com/?cat=8&lang=fr
GMT-05 (Canada/USA Est)
N-G-U-I
Avatar de l’utilisateur
cayou66
 
Messages: 4659
Inscription: 30 Juin 2011, 14:45
Localisation: Montréal

Re: touche clavier pour geler mvt souris et afficher boutons

Messagepar freepl » 15 Juin 2012, 06:36

Oups, mes excuses.

Voici donc ma question:
Comment faire pour qu' en cliquant sur la touche Tabulation , j'affiche les boutons variante1, variante 2, initialisation MAIS je veux AUSSI "geler" le déplacement de la caméra le temps d'utiliser ces boutons,
Une fois les boutons cliqués, je reprends le contrôle de la caméra ?

Je n'avais pas mis mon script car je pensais que c'était inutile

Code: Tout sélectionner
#pragma strict

// DECLARATION DES VARIABLES
// CARRES_FIXES    : les carrés non impactés
// CARRES_CHANGEANT1      : les carrés qui seront modifiés par la variante 1
// CARRES_PROJET1  : les carrés modifiés par la variante 1 
// ROUTE1           : le projet routier variante1 avec sa route et ses ponts
private var target_CARRES_FIXES : GameObject;
private var target_CARRES_CHANGEANT1 : GameObject;
private var target_CARRES_CHANGEANT2 : GameObject;
private var target_CARRES_PROJET1 : GameObject;
private var target_CARRES_PROJET2 : GameObject;
private var target_ROUTE1 : GameObject;
private var target_ROUTE2 : GameObject;
// variable qui permet d'afficher - masquer des boutons
var displayButtons : boolean = false;
// variable qui permet de changer la vitesse de déplacement dans la maquette de la Main camera
var speed : float = 6.0;

// AU LANCEMENT DU PROGRAMME, ON ASSIGNE CHAQUE OBJET AUX VARIABLES
// Affiche le terrain normal(CARRES_FIXES) Ceux qui seront modifiés (CARRES_CHANGEANT*) Masque (CARRES_PROJET*)
function Start () {
  target_CARRES_FIXES = GameObject.Find("GameObject_CARRES_FIXES");
  target_CARRES_CHANGEANT1 = GameObject.Find("GameObject_CARRES_CHANGEANT1");
  target_CARRES_CHANGEANT2 = GameObject.Find("GameObject_CARRES_CHANGEANT2");
  target_CARRES_PROJET1 = GameObject.Find("GameObject_CARRES_PROJET1");
  target_CARRES_PROJET2 = GameObject.Find("GameObject_CARRES_PROJET2");
  target_ROUTE1 = GameObject.Find("GameObject_ROUTE1");
  target_ROUTE2 = GameObject.Find("GameObject_ROUTE2");
 
  target_ROUTE1.SetActiveRecursively(false);
  target_ROUTE2.SetActiveRecursively(false);
  // on affiche le groupe CARRES_FIXES et Cles groupes CARRES_CHANGEANT*
       target_CARRES_CHANGEANT1.SetActiveRecursively(true);
     target_CARRES_FIXES.SetActiveRecursively(true);
      target_CARRES_CHANGEANT2.SetActiveRecursively(true);
 
// On masque les groupes CARRES_PROJET1 et2 / ROUTE1 et ROUTE2.
 target_CARRES_PROJET1.SetActiveRecursively(false); 
  target_CARRES_PROJET2.SetActiveRecursively(false); 


}



function Update()
{
//Déplacement de la caméra car script mis sur la MainCaméra
//flèche drt / gche pour aller à drt/gche
//flèche haut/bas pour aller haut/bas
//Barre ESPACE pour avancer
//touche SHIFT gauche pour reculer
     var moveSpeed : Vector3;
    //calculate the lateral speed (AD and/or joystick X)
    moveSpeed.x = speed * Input.GetAxis("Horizontal");
    //calculate the forth/back speed (WS and/or joystick Y)
    moveSpeed.z = speed * Input.GetAxis("Vertical");
      
   
    //generate a -1/0/1 output like the GetAxis above for up/down movement
     var up: float = 0;
   //generate a -1/0/1 output like the GetAxis above for up/down movement
   //barre ESPACE pour avancer
    if (Input.GetKey("space")) up = 1;
   //touche SHIFT gauche pour reculer
    if (Input.GetKey("left shift")) up = -1;
   // calcul de la vitesse de monter_descendre
    moveSpeed.y = speed * up;
    //(moveSpeed * Time.deltaTime converts speed to displacement)
    transform.Translate(moveSpeed * Time.deltaTime);
}


function OnGUI ()
{
//AFFICHER-MASQUER des boutons
// clic sur le bouton nommé "MENU "
  if (GUI.Button(new Rect(5,0,1014,20),"MENU"))
  {
   displayButtons = !displayButtons;
  }
   
// Caractéristiques des boutons qui seront affichés-masqués

//clic sur le bouton nommé "INITIALISATION " retour de CARRES_FIXES et CARRES_CHANGEANT*
   if (displayButtons)
   {
   if(GUI.Button(new Rect(5,20,80,20),"Initialisation"))
      {
      

   target_CARRES_CHANGEANT1.SetActiveRecursively(true);   
   target_CARRES_CHANGEANT2.SetActiveRecursively(true);
   target_CARRES_PROJET1.SetActiveRecursively(false);
   target_CARRES_PROJET2.SetActiveRecursively(false);
   target_ROUTE1.SetActiveRecursively(false);
   target_ROUTE2.SetActiveRecursively(false);
      }
    }



//__________clic sur le bouton nommé "Variante 1" Masque CARRES_CHANGEANT1  Affiche CARRES_PROJET1 et ROUTE1 et CARRES_CHANGEANT2
//________ GUI.Button new Rect(20,100,200,40) début bouton à x,y et long, largeur
   if (displayButtons)
   {
        if(GUI.Button(new Rect(85,20,80,20),"Variante 1"))
      {
         target_ROUTE1.SetActiveRecursively(true);
   target_ROUTE2.SetActiveRecursively(false);
   target_CARRES_CHANGEANT1.SetActiveRecursively(false);
        target_CARRES_CHANGEANT2.SetActiveRecursively(true);
      target_CARRES_PROJET1.SetActiveRecursively(true);
   target_CARRES_PROJET2.SetActiveRecursively(false);

      }
   } 

   

//_________clic sur le bouton nommé "Variante 2  " Masque CARRES_CHANGEANT2 / ROUTE_1 
// ________Affiche CARRES_PROJET2 et ROUTE2 et CARRES_CHANGEANT1
   if (displayButtons)
   {
      if(GUI.Button(new Rect(165,20,80,20),"Variante 2"))
      {
       target_CARRES_CHANGEANT1.SetActiveRecursively(true);
   target_CARRES_CHANGEANT2.SetActiveRecursively(false);
   target_ROUTE1.SetActiveRecursively(false);
       target_ROUTE2.SetActiveRecursively(true);
   target_CARRES_PROJET1.SetActiveRecursively(false);
       target_CARRES_PROJET2.SetActiveRecursively(true);
      }
    }


//__________clic sur le bouton nommé Trajet SUD ALTEYRAC lance la trajectoire de la camera le long de la variante 1
//________ GUI.Button new Rect(20,100,200,40) début bouton à x,y et long, largeur
   if (displayButtons)
   {
        if(GUI.Button(new Rect(245,20,200,20),"Trajet SUD ALTEYRAC"))
      {
    var swCameraScript : SwitchCameras_30 = gameObject.GetComponent(SwitchCameras_30);
    swCameraScript.enabled = true;
      }
   } 
   
   

      
      //__________lance l'animation de trajectoire venant de MAYA A FAIRE
   if (displayButtons)
   {
        if(GUI.Button(new Rect(445,40,100,20),"Ani. MAYA"))
      {
         }
   }     
      
      
   // clic sur le bouton "QUITTER"   
      
   if (displayButtons)
   {
   if (GUI.Button (Rect (545,20,80,20), "Quitter"))
      {
Application.Quit();
      }   
   }


}

Avatar de l’utilisateur
freepl
 
Messages: 262
Inscription: 20 Mai 2012, 19:33
Localisation: salon de provence

Re: touche clavier pour geler mvt souris et afficher boutons

Messagepar artemisart » 15 Juin 2012, 17:18

freepl a écrit:Comment faire pour qu' en cliquant sur la touche Tabulation , j'affiche les boutons variante1, variante 2, initialisation MAIS je veux AUSSI "geler" le déplacement de la caméra le temps d'utiliser ces boutons,
Une fois les boutons cliqués, je reprends le contrôle de la caméra ?


Tu peux faire un bool, que tu passe à true si on appuie sur tab.
Ensuite, si ce bool est à true, tu affiche les boutons et tu désactive le script de la cam (et inversement, si le bool est à false tu active le script de la cam et tu n'affiche pas les boutons).
Et pour terminer tu passe à false le bool si on appuie sur un bouton.
artemisart
 
Messages: 729
Inscription: 21 Juin 2011, 19:51
Localisation: Centre, Age: 15

Re: touche clavier pour geler mvt souris et afficher boutons

Messagepar freepl » 15 Juin 2012, 17:26

Là , je n'ai RIEN compris. Je débute.
Tu n'as pas un exemple ?

Merci
Avatar de l’utilisateur
freepl
 
Messages: 262
Inscription: 20 Mai 2012, 19:33
Localisation: salon de provence

Re: touche clavier pour geler mvt souris et afficher boutons

Messagepar artemisart » 15 Juin 2012, 18:14

artemisart a écrit:Tu peux faire un bool, que tu passe à true si on appuie sur tab.
Ensuite, si ce bool est à true, tu affiche les boutons et tu désactive le script de la cam (et inversement, si le bool est à false tu active le script de la cam et tu n'affiche pas les boutons).
Et pour terminer tu passe à false le bool si on appuie sur un bouton.


Le bool :
Code: Tout sélectionner
var aBool : boolean = false;

L'appui sur la touche (Update) :
Code: Tout sélectionner
if (Input.GetKeyDown (KeyCode.Tab)) aBool = true;

Pour les boutons (OnGUI) :
Code: Tout sélectionner
if (aBool) { /* tu code les boutons */ }

Pour désactiver le script (Update), juste un if (aBool) { et un GetComponent, puis tu passe la propriété enabled à false pour désactiver et à true pour activer (à noter qu'il faut peut-être le mettre dans une variable, je sais pas si on peut accéder à un component script s'il est désactivé).
Et pour passer le bool à true quand on clique sur un bouton, je pense que tu peux te débrouiller, c'est pas ce qu'il y a de plus compliqué :D.
artemisart
 
Messages: 729
Inscription: 21 Juin 2011, 19:51
Localisation: Centre, Age: 15


Retourner vers Scripting Javascript, C# et Boo

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités