Page 1 sur 1

[RESOLU]Switch entre deux sprite C#

Publié : 20 Août 2020 17:34
par RenNoun
Bonjour,

Je début avec unity, et j'ai très peu de connaissances en programmation alors je viens poser une petite question.

Je cherche le moyen le plus simple et logique pour intervertir deux objets ou plutôt changer un objet en un autre objet.
Exemple: j'ai un carré et quand je clique dessus, je voudrais que ça devienne un cercle ou autre forme.

j'ai un peu cherché mais je n'ai pas trouvé de réponse alors je me retourne vers la commu pour voire si on peut me proposer quelque chose d’intéressant merci !

Re: Switch entre deux objets C#

Publié : 20 Août 2020 17:50
par Max
Bonsoir,
RenNoun a écrit :
20 Août 2020 17:34
Exemple: j'ai un carré et quand je clique dessus, je voudrais que ça devienne un cercle ou autre forme.
Une des solutions serait de désactiver le premier GameObject (GameObject.SetActive()), puis d'activer le second objet, et de la positionner aux même coordonnées que le premier (Transform.position)

Re: Switch entre deux objets C#

Publié : 20 Août 2020 18:33
par RenNoun
Bonjour Max, merci pour ta réponse,

Au début c'est un peu prêt ce que je fessais mais, plus j'avançait moins c'était bon.
Exemple

Code : Tout sélectionner

public GameObject etoile;


    
    void OnMouseDown()
    {
        
        if (Input.GetMouseButtonDown(0))
        {
            etoile.SetActive(true);
        }
    }
mais biensur je plaçait l'objet aux coordonées par moi même, le souci c'est que si j'ai 10 objets ou plus a changer en un même objet. ça n'as plus aucune valeur.

j'ai essayé aussi avec

Code : Tout sélectionner

public SpriteRenderer spriteRenderer;
    public Sprite newSprite;


    void ChangeSprite()
    {
        spriteRenderer.sprite = newSprite;
    }


    void Start()
    {
        spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
    }
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ChangeSprite(newSprite);
        }
    }
mais la encore j'ai un problème avec ChangeSprite(newSprite)

je continue a chercher le souci mais voilà, quand on débute c'est un peu compliqué ^^'

Re: Switch entre deux objets C#

Publié : 20 Août 2020 18:38
par RenNoun
Ok j'ai trouvé le souci je pense

Dans

Code : Tout sélectionner

public SpriteRenderer spriteRenderer;
public Sprite newSprite;


void ChangeSprite(Sprite newSprite)
{
spriteRenderer.sprite = newSprite;
}


void Start()
{
spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ChangeSprite(newSprite);
}
}

Re: Switch entre deux objets C#

Publié : 20 Août 2020 18:45
par Max
j'étais dans une approche 3D.
Effectivement, en 2D et pour des sprites, c'est plus simple.