Ejemplo n.º 1
0
    public void SetDisplay()
    {
        ///////On trouve l'objet le plus éloigné du centre de la zone

        Transform farthestObject = FindFarthestLabel();

        ///////On incrémente l'opacité et la taille
        for (var i = 0; i < labels.Count; i++)
        {
            GameObject label              = labels[i];
            Label_UI   label_script       = label.GetComponent <Label_UI>();
            float      distanceMax        = Vector3.Distance(farthestObject.position, transform.position);
            Vector3    compensatedPos     = new Vector3(transform.position.x, 9, transform.position.z);
            float      distance           = Vector3.Distance(label.transform.position, compensatedPos);
            float      distancePercentage = 1 - (distance / distanceMax);


            print(distance + " / " + distanceMax + " = " + distancePercentage);


            Color currentCol = label_script.label_fond.GetComponent <Image>().color;
            Color newColor   = new Color(currentCol.r, currentCol.g, currentCol.b, Mathf.Lerp(opacityMin, 1, distancePercentage));
            label_script.label_fond.GetComponent <Image>().color = newColor;
        }
    }
Ejemplo n.º 2
0
 void OnDestroy()
 {
     for (var i = 0; i < labels.Count; i++)
     {
         GameObject label        = labels[i];
         Label_UI   label_script = label.GetComponent <Label_UI>();
         label_script.isVisible = false;
         label_script.label_pointe_RT.localScale = Vector3.zero;
     }
 }
Ejemplo n.º 3
0
    //On trouve les labels grâçe à un tag et réduit la "localScale" de chacun à 0
    public void HideLabels()
    {
        GameObject[] labels = GameObject.FindGameObjectsWithTag("Label");

        foreach (GameObject go in labels)
        {
            Label_UI labelScript = go.GetComponent <Label_UI>();
            labelScript.label_pointe_RT.localScale = Vector3.zero;
            labelScript.isVisible = false;
        }
    }
Ejemplo n.º 4
0
    public void DisplayList()     //Cette fonction crée une liste de boutons et l'affiche dans la section dédiée du panneau latéral droit. Elle permet également l'affichage des labels des objets sélectionnés.
    {
        for (var i = 0; i < SelectedObj.Count; i++)
        {
            //Création des boutons de la liste d'objects sélectionnés
            float   yPos = i * 25;
            Vector3 pos  = new Vector3(1, -yPos);

            GameObject bouton = Instantiate(bouton_liste);
            bouton.name = "bouton_" + SelectedObj[i].name;
            bouton.transform.SetParent(ObjectParent.transform);
            bouton.GetComponent <RectTransform>().anchoredPosition = pos;
            bouton.GetComponent <RectTransform>().sizeDelta        = new Vector2(370, 25);

            Text bouton_texte         = bouton.GetComponentInChildren <Text>();
            ObjectsInformations infos = SelectedObj[i].GetComponent <ObjectsInformations>();

            bouton.GetComponent <bouton_hierarchyList>().object_linked = SelectedObj[i];

            bouton_texte.text = infos.title;

            if (i % 2 == 0)
            {
                bouton.GetComponent <Image> ().color = new Vector4(1, 1, 1, 1);
            }



            //Si nécessaire, on agrandit le menu des objets sélectionnés
            if (i > 10)
            {
                Vector2 dec = new Vector2(0, 25);

                Cont_rect.sizeDelta += dec;
                Doc_rect.sizeDelta  += dec;
            }

            //On force la mise à jour des canevas
            Canvas.ForceUpdateCanvases();

            //On place les boutons créés dans une liste
            SelectedButton.Add(bouton);

            //Affichage des labels des objets sélectionnés
            label_script = infos.label.GetComponent <Label_UI> ();
            label_script.label_pointe_RT.localScale = Vector3.one;
            label_script.isVisible = true;
        }
    }
Ejemplo n.º 5
0
 public void ClearLabels()     //Cette fonction permet d'effacer les labels sur la maquette et de vider la liste des objets sélectionnés.
 {
     foreach (GameObject go in SelectedObj)
     {
         //On efface les labels de tous les objets sélectionnés sauf si l'un d'entre eux est l'objet actif
         if (go != GameObject.Find("Active_object").GetComponent <Active_object> ().active)
         {
             infos        = go.GetComponent <ObjectsInformations> ();
             label_script = infos.label.GetComponent <Label_UI> ();
             label_script.label_pointe_RT.localScale = Vector3.zero;
             label_script.isVisible = false;
         }
     }
     SelectedObj.Clear();          //On vide la liste des objets sélectionnés
 }
Ejemplo n.º 6
0
    public void OnClick()
    {
        if (title_field.text != "")
        {
            foreach (GameObject go in allObjects)
            {
                ObjectsInformations infos = go.GetComponent <ObjectsInformations>();
                if (infos.title == title_field.text)
                {
                    activeObject = go;
                    label_script = infos.label.GetComponent <Label_UI>();
                    label_script.label_pointe_RT.localScale = Vector3.one;
                    label_script.isVisible = true;
                    break;
                }
            }
        }


        mainCam_goTo.GoTo(activeObject.transform);
    }
Ejemplo n.º 7
0
    //Active le label de l'objet, et affiche les infos dans le panneau latéral
    //À noter : lorsque l'on veut faire apparaître un label, on fait passer sa "localSize" de 0 à 1
    public void DisplayLabel()
    {
        infos = gameObject.GetComponent <ObjectsInformations> ();

        title_field       = GameObject.Find("text_title").GetComponent <Text> ();
        description_field = GameObject.Find("text_description").GetComponent <Text> ();
        label_script      = infos.label.GetComponent <Label_UI> ();

        title_field.text       = infos.title;
        description_field.text = infos.description;

        visible = GameObject.Find("Button_afficherZones").GetComponent <ShowZones> ().visible;

        if (!visible)
        {
            GameObject[] zones = GameObject.FindGameObjectsWithTag("Zone");
            foreach (GameObject go in zones)
            {
                go.transform.localScale = Vector3.zero;
            }

            if (infos.geometry_mock_up != "")
            {
                GameObject obj_zone = GameObject.Find(gameObject.name + "_zone");
                obj_zone.transform.localScale = Vector3.one;
            }
        }

        label_script.label_pointe_RT.localScale = Vector3.one;
        label_script.isVisible = true;

        //On met à jour les informations du bandeau details
        details = GameObject.Find("texte_version");
        details.GetComponent <Text> ().text = infos.version;
        details = GameObject.Find("texte_id");
        details.GetComponent <Text> ().text = infos.id;
        details = GameObject.Find("texte_statut");
        details.GetComponent <Text> ().text = infos.status;
    }
Ejemplo n.º 8
0
    public void setActive()      //Enregistre les caractéristiques de l'objet actif et les modifie pour le mettre en valeur
    //On récupère l'objet actif à partir de son nom
    {
        active = GameObject.Find(nom);

        //On stocke son matériau d'origine puis on lui donne un matériau de mise en valeur
        cur_mat = active.GetComponent <MeshRenderer> ().material;
        active.GetComponent <MeshRenderer> ().material = act_mat;

        //On récupère les informations attachées à l'objet actif
        infos = active.GetComponent <ObjectsInformations> ();

        //Si l'objet actif possède une zone associée...
        if (infos.geometry_mock_up != "")
        {
            obj_zone_act = GameObject.Find(active.name + "_zone");              //On récupère l'objet zone

            // Si la zone est actuellement mise en valeur, son matériau d'origine est stockée dans l'attribut start_mat de "ZoneOnClick".
            if (obj_zone_act.GetComponent <ZoneOnClick> ().highlighted)
            {
                cur_zone_mat = obj_zone_act.GetComponent <ZoneOnClick> ().start_mat;
            }

            // Sinon, on récupère tout simplement le matériau sur l'objet zone.
            else
            {
                cur_zone_mat = obj_zone_act.GetComponent <MeshRenderer> ().material;
            }

            // Gestion de la zone associée à l'objet actif
            highlight_Zone();
        }

        //Si on a un objet précédent, on va lui redonner ses caractéristiques d'origine et effacer son label
        if (begin)
        {
            //On redonne à l'objet précédent son matériau d'origine
            previous.GetComponent <MeshRenderer> ().material = pre_mat;

            //On récupère les informations attachées à l'objet précédent
            infos = previous.GetComponent <ObjectsInformations> ();

            //On efface le label de l'objet précédent sauf s'il appartient à la liste d'objets sélectionnés
            SelectedObj = GameObject.Find("Documents").GetComponent <ObjectSelection> ().SelectedObj;

            if (!SelectedObj.Contains(previous))
            {
                label_script = infos.label.GetComponent <Label_UI> ();
                label_script.label_pointe_RT.localScale = Vector3.zero;
                label_script.isVisible = false;
            }

            //Si l'objet précédent possède une zone associée, on redonne à cette zone son matériau d'origine
            if (infos.geometry_mock_up != "")
            {
                obj_zone_pre.GetComponent <MeshRenderer> ().material = pre_zone_mat;                // On modifie son matériau
            }
        }

        //On passe les paramètres de l'objet actif dans l'objet précédent
        previous     = active;
        obj_zone_pre = obj_zone_act;
        pre_mat      = cur_mat;
        pre_zone_mat = cur_zone_mat;

        //On enregistre le fait qu'on a un objet précédent
        begin = true;
    }