[RESOLU] [DB-AL] Condition scale

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
pleiode
Messages : 10
Inscription : 12 Juil 2019 10:59

[RESOLU] [DB-AL] Condition scale

Message par pleiode » 16 Sep 2019 20:21

Salut tout le monde !
Je suis débutant et je galère a essayer de faire un truc simple, je veux dire, si le scale de mon gameObject et supérieur à.. alors...

Pour l'instant j'en suis là :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

    public GameObject gameObjects;
    public GameObject text;

    // Start is called before the first frame update
    void OnMouseDrag()
    {
        if (gameObjects.transform.localScale > Vector3(2, 0, 0));
        {
          text.SetActive (false);
        }
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
Comme vous vous en doutez ça ne marche pas, et je ne sais pas pourquoi ..!

Une aide me serait précieuse ! :)
Merci d'avance et bonne soirée :) !
Dernière édition par pleiode le 17 Sep 2019 14:41, édité 1 fois.

Avatar de l’utilisateur
Deceleris
Messages : 43
Inscription : 25 Juil 2018 22:06
Contact :

Re: Condition scale

Message par Deceleris » 16 Sep 2019 20:45

Aha c'est tout simple :D

Au lieu de comparer ton vecteur a, à ton vecteur b, de la manière suivante :
a > b

Fait le en comparant leur composante x, donc de cette manière :
a.x > b.x ou dans ton cas : gameObjects.tansform.localScale.x > 2

Voilà j'espère que ça t'auras aidé :mrgreen:

pleiode
Messages : 10
Inscription : 12 Juil 2019 10:59

Re: Condition scale

Message par pleiode » 16 Sep 2019 21:11

Cool merci !
Je viens d'essayer et je pense que je ne suis pas loin, mais j'ai une autre erreur dans ma console maintenant ::d

" Assets\NewBehaviourScript.cs(14,25): error CS1061: 'GameObject' does not contain a definition for 'tansform' and no accessible extension method 'tansform' accepting a first argument of type 'GameObject' could be found (are you missing a using directive or an assembly reference?) "


Mon script :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

    public GameObject gameObjects;
    public GameObject text;

    // Start is called before the first frame update
    void OnMouseDrag()
    {
        if (gameObjects.tansform.localScale.x > 2);
        {
          text.SetActive (false);
        }
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
.
 ! Message de : Max
Utilisez les balises code SVP
Merci de lire la Charte et sa FAQ, en particulier Comment insérer un script dans un messages ?.

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Condition scale

Message par Max » 16 Sep 2019 21:32

Bonsoir,

Il faut apprendre à interpréter ce que donne les messages d'erreurs. La solution se trouve quasiment toujours là, tout du moins son début (en complément de la doc bien entendu).
En l’occurrence cela te dit : GameObject' does not contain a definition for 'tansform'
en gros la classe GameObject ne contient pas de définition pour tansform.
Et en lisant tu te rends compte que tu as oublié un "r", et donc ce n'est pas tansform mais transform qu'il faut écrire.
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

pleiode
Messages : 10
Inscription : 12 Juil 2019 10:59

Re: Condition scale

Message par pleiode » 16 Sep 2019 22:14

Oui je venez juste de voir l'erreur après mon post désolé ^^. Sauf que j'y arrive toujours pas. Bon j'ai l'impression que c'est ma condition, le Hello ne s'affiche pas dans ma console :/

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

    public GameObject planet;
    public GameObject text;

    
     void Start()
    {

  

         if (planet.transform.localScale.x > 5)
        {
        Debug.Log("Hello");
          text.SetActive(false);
        } 
        
        

    }

    
}

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Condition scale

Message par Max » 16 Sep 2019 22:54

Ben ton localScale.x > 5 n'est jamais supérieur à 5....
Sinon, ton code est dans Start(), donc exécuté une fois au lancement, donc....
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

pleiode
Messages : 10
Inscription : 12 Juil 2019 10:59

Re: Condition scale

Message par pleiode » 16 Sep 2019 23:00

Comment ça mon localScale n'est jamais égal à 5 ? En gros quand j'augmente, en jeu, le scale du gameObject, c'est censé enlever mon texte ! Oui je l'ai remis dans void Update :)

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

    public GameObject planet;
    public GameObject text;

     void Start()
    {

    }

    void Update()
    {
      if (planet.transform.localScale.x > 2)
        {
          Debug.Log("Hello: ");
          text.SetActive(false);
        } 
    }

    
}

Avatar de l’utilisateur
Max
Newser
Newser
Messages : 7385
Inscription : 30 Juil 2011 13:57

Re: Condition scale

Message par Max » 17 Sep 2019 07:57

Bonjour,
pleiode a écrit :
16 Sep 2019 23:00
Comment ça mon localScale n'est jamais égal à 5 ?
J'ai pas dit égale. Quand tu donnais ce code:

Code : Tout sélectionner

     void Start()
    {
         if (planet.transform.localScale.x > 5)
        {
        Debug.Log("Hello");
          text.SetActive(false);
        } 
     }
je disais juste qu'au départ, ton localScale n'était donc jamais supérieur à 5.... (à 5.0f en fait)
pleiode a écrit :
16 Sep 2019 23:00
Oui je l'ai remis dans void Update :)
cela sous-entend-t-il que ton soucis est réglé ?
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

pleiode
Messages : 10
Inscription : 12 Juil 2019 10:59

Re: [DB-AL] Condition scale

Message par pleiode » 17 Sep 2019 10:30

Salut :) ! ( désolé pour avoir créé mon poste à l'arrache ^^ )

Non toujours pas ^^'. Je ne comprend vraiment pas le problème. Je me suis peut-être mal exprimé, au départ mon object à un scale de 1 (x= 1; y=1; z=1). Puis, quand je j'augmente le scale manuellement mon objet en jeu, jusqu'a atteindre un scale de 5, je veux que mon test se désactive (SetActive (false)). J'espère avoir été plus clair ^^ !

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5086
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: [DB-AL] Condition scale

Message par boubouk50 » 17 Sep 2019 11:14

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour
{

    public GameObject planet;
    public GameObject text;

    void Update()
    {
      if (planet.transform.localScale.x > 5.0f) //Attention, utilise un float car localScale.x est un float
        {
          Debug.Log("Hello: ");
          text.SetActive(false);
        } 
    }
}
Ton code est fonctionnel, assure-toi seulement que planet et text soient bien renseignés.
"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

Répondre

Revenir vers « (C#) CSharp »