[RESOLU] Afficher un sprite 2D sur tout l'écran

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Salade Tomate Oignon
Messages : 4
Inscription : 15 Juin 2019 22:26

[RESOLU] Afficher un sprite 2D sur tout l'écran

Message par Salade Tomate Oignon » 22 Juin 2019 13:29

Bonjour, je débute sur Unity. Je souhaite afficher un background pour mon jeu 2D, donc j'ai créé un sprite 2D et je l'ai redimensionné grossièrement pour que l'image prenne les dimensions de la caméra (qui ne bouge pas).
Cependant lorsque je change la résolution du jeu, la caméra s'adapte mais mon image est fixe. Moi j'aimerais qu'elle prenne les dimensions de cette caméra (ou de l'écran vu que c'est les mêmes tailles du coup).

Je sais que c'est possible en utilisant l'UI et les canvas mais je voudrais fais sans, car dans mon jeu je crée des zones en fonction des éléments de mon background, ces zones sont enfants de l'image donc si je redimensionne l'image elles s'adaptent sans problème, ce qui n'est pas le cas si je met l'image dans l'UI.

Pourriez-vous m'aider svp ?

Avatar de l’utilisateur
Max
Messages : 8771
Inscription : 30 Juil 2011 13:57
Contact :

Re: Afficher un sprite 2D sur tout l'écran

Message par Max » 22 Juin 2019 15:04

Hello,

Là d'instinct, je partirais sur une adaptation de la taille de ton image sur la résolution de la camera.
Donc si ta camera en mode ortho est en x/y = 0 et que ton Sprite servant de fond est lui aussi en 0,0 (scale = 1)
un code du genre (placé sur le GO servant de BackgroundSprite) devrait fonctionner:

Code : Tout sélectionner

    void Awake()
    {
        SpriteRenderer sp = GetComponent<SpriteRenderer>();
        float width = sp.sprite.bounds.size.x;
        float height = sp.sprite.bounds.size.y;

        float worldScreenHeight = Camera.main.orthographicSize * 2.0f;
        float worldScreenWidth = worldScreenHeight / Screen.height * Screen.width;

        Vector3 lsc = transform.localScale;
        lsc.x = worldScreenWidth / width;
        lsc.y = worldScreenHeight / height;
        transform.localScale = lsc;
    }
A adapter selon les besoins.
Image
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

Salade Tomate Oignon
Messages : 4
Inscription : 15 Juin 2019 22:26

Re: Afficher un sprite 2D sur tout l'écran

Message par Salade Tomate Oignon » 23 Juin 2019 13:38

C'est parfait ça marche niquel merci ! :super:

Répondre

Revenir vers « Scripting »