Documentation de Needle Engine
Downloads
  • What is Needle Engine?
  • Témoignages
  • Get an overview

    • Samples and Showcase
    • Notre Vision 🔮
    • Aperçu des fonctionnalités
    • Vue d'ensemble technique
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • /lang/fr/unity/
    • Needle Engine pour Blender
    • Needle Engine en tant que Web Component
    • Needle Engine sur votre site Web
    • Needle Cloud
  • Topics

    • Structure de projet Web
    • Everywhere Actions
    • Exporter des Assets vers glTF
    • Frameworks, Bundlers, HTML
    • Tester sur les appareils locaux
    • Déploiement et Optimisation
  • Advanced

    • Réseau
    • VR & AR (WebXR)
    • Utiliser Needle Engine directement depuis HTML
    • Synchronisation de l'Editor (Editor Sync)
  • Troubleshooting

    • Comment déboguer
    • Questions et Réponses (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Scripting dans Needle Engine
    • Introduction au Scripting pour les Développeurs Unity
    • Composants principaux de Needle
    • Everywhere Actions
  • Components and Lifecycle

    • Créer et utiliser des Components
    • @serializable et autres décorateurs
    • Génération automatique de composants
    • Exemples de Scripting
    • Community Contributions
    • Modules supplémentaires
  • Settings and APIs

    • <needle-engine> Configuration
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
Downloads
  • What is Needle Engine?
  • Témoignages
  • Get an overview

    • Samples and Showcase
    • Notre Vision 🔮
    • Aperçu des fonctionnalités
    • Vue d'ensemble technique
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • /lang/fr/unity/
    • Needle Engine pour Blender
    • Needle Engine en tant que Web Component
    • Needle Engine sur votre site Web
    • Needle Cloud
  • Topics

    • Structure de projet Web
    • Everywhere Actions
    • Exporter des Assets vers glTF
    • Frameworks, Bundlers, HTML
    • Tester sur les appareils locaux
    • Déploiement et Optimisation
  • Advanced

    • Réseau
    • VR & AR (WebXR)
    • Utiliser Needle Engine directement depuis HTML
    • Synchronisation de l'Editor (Editor Sync)
  • Troubleshooting

    • Comment déboguer
    • Questions et Réponses (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Scripting dans Needle Engine
    • Introduction au Scripting pour les Développeurs Unity
    • Composants principaux de Needle
    • Everywhere Actions
  • Components and Lifecycle

    • Créer et utiliser des Components
    • @serializable et autres décorateurs
    • Génération automatique de composants
    • Exemples de Scripting
    • Community Contributions
    • Modules supplémentaires
  • Settings and APIs

    • <needle-engine> Configuration
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
  • Getting Started

    • Downloads
    • Needle Engine for Unity
    • Needle Engine for Blender
    • Needle Engine as Web Component
    • Needle Engine on your Website
    • Needle Cloud
    • Custom integrations
    • Support and Community
  • Core Concepts

    • Structure de projet Web
    • Everywhere Actions
    • Exporter des Assets vers glTF
    • Frameworks, Bundlers, HTML
    • Tester sur les appareils locaux
    • Déploiement et Optimisation
    • Comment déboguer
    • Questions et Réponses (FAQ) 💡
  • Scripting

    • Scripting dans Needle Engine
    • Introduction au Scripting pour les Développeurs Unity
    • Créer et utiliser des Components
    • Génération automatique de composants
    • Exemples de Scripting
    • Community Contributions
  • Advanced

    • VR & AR (WebXR)
    • Réseau
    • Synchronisation de l'Editor (Editor Sync)
  • Reference

    • Aperçu des fonctionnalités
    • Vue d'ensemble technique
    • Composants principaux de Needle
    • needle.config.json
    • <needle-engine> Configuration
    • @serializable et autres décorateurs

Qu'est-ce que le déploiement ?

Le déploiement est le processus qui consiste à rendre votre application disponible au public sur un site web. Needle Engine garantit que votre projet est aussi petit et rapide que possible en utilisant les dernières techniques de compression telles que KTX2, Draco, et Meshopt.

Cibles de déploiement disponibles

  • Needle Cloud Idéal pour les applications web spatiales et le partage d'assets.

  • Glitch Idéal pour l'expérimentation et le développement de code côté serveur.

  • Netlify Idéal pour héberger votre propre site web et des noms de domaine personnalisés.

  • itch.io Souvent utilisé pour les jeux.

  • GitHub Pages Hébergement gratuit de pages statiques.

  • Vercel Plateforme pour les développeurs frontend

  • FTP Upload Déployez directement sur n'importe quel serveur avec support FTP. Les protocoles FTP et SFTP sont pris en charge.

  • Build to folder Lorsque vous compilez vers un dossier, vous pouvez télécharger les fichiers sur n'importe quel serveur web ou autre service d'hébergement.

  • Facebook Instant Games Plateforme de jeux sur Facebook et Facebook Messenger.

Vous pensez qu'il manque quelque chose ?

N'hésitez pas à nous le faire savoir sur notre forum !

Compilations de développement (Development Builds)

Consultez les guides ci-dessus pour savoir comment accéder aux options depuis votre Éditeur (par exemple Unity ou Blender).

La principale différence avec une compilation de production est qu'elle ne réalise pas de compression ktx2 et draco (pour la réduction de la taille des fichiers et la vitesse de chargement), ainsi que l'option de charger progressivement les textures de haute qualité.

Nous recommandons généralement de réaliser des compilations de production pour une taille de fichier et une vitesse de chargement optimisées (voir plus d'informations ci-dessous).

Compilations de production (Production Builds)

Pour réaliser une compilation de production, vous devez avoir installé toktx, qui fournit la compression de textures en utilisant le format de supercompression KTX2. Veuillez vous rendre sur la page des versions de toktx et télécharger et installer la dernière version (v4.1.0 au moment de la rédaction). Vous devrez peut-être redémarrer Unity après l'installation. Si vous êtes certain d'avoir installé toktx et qu'il fait partie de votre PATH mais qu'il n'est toujours pas trouvé, veuillez redémarrer votre machine et réessayer la compilation.

Avancé : Extensions glTF personnalisées

Si vous prévoyez d'ajouter vos propres extensions glTF personnalisées, la compilation pour la production nécessite leur gestion dans gltf-transform. Voir @needle-tools/gltf-build-pipeline pour référence.

Options d'optimisation et de compression

Compression de textures

Les compilations de production compresseront par défaut les textures en utilisant KTX2 (soit ETC1S soit UASTC selon leur utilisation dans le projet) mais vous pouvez également sélectionner la compression WebP et choisir un niveau de qualité.

Comment choisir entre la compression ETC1S, UASTC et WebP ?

FormatETC1SUASTCWebP
Utilisation mémoire GPUFaibleFaibleÉlevée (non compressée)
Taille du fichierFaibleÉlevéeTrès faible
QualitéMoyenneTrès élevéeDépend du paramètre de qualité
Utilisation typiqueFonctionne pour tout, mais optimal pour les textures de couleurTextures de données à haute résolution : normal maps, roughness, metallic, etc.Fichiers où la qualité ETC1S est insuffisante mais UASTC est trop volumineux

Vous avez la possibilité de sélectionner les options de compression de textures et de chargement progressif par Texture en utilisant le Needle Texture Importer dans Unity ou dans l'onglet Material dans Blender.

Unity : Comment définir les paramètres de compression par texture ?

imageimage

Blender : Comment définir les paramètres de compression par texture ?

Sélectionnez l'onglet material. Vous verrez les options de compression pour toutes les textures utilisées par ce material. Texture Compression options in Blender

Toktx introuvable

Windows : Assurez-vous d'avoir ajouté toktx à vos variables d'environnement système. Vous devrez peut-être redémarrer votre ordinateur après l'avoir ajouté pour actualiser les variables d'environnement. L'emplacement d'installation par défaut est C:\Program Files\KTX-Software\binimage

Compression de maillages (Mesh compression)

Par défaut, une compilation de production compressera les maillages en utilisant la compression Draco. Utilisez le composant MeshCompression pour choisir entre draco et mesh-opt par glTF exporté. De plus, vous pouvez configurer la simplification de maillage pour réduire le nombre de polygones pour les compilations de production dans les paramètres d'importation de maillage (Unity). Lorsque vous visualisez votre application dans le navigateur, vous pouvez ajouter ?wireframe à votre URL pour prévisualiser les maillages.

Comment choisir entre Draco et Meshopt ?

FormatDracoMeshopt
Utilisation mémoire GPUMoyenneFaible
Taille du fichierLa plus faibleFaible
Compression d'animationNonOui
Comment définir les paramètres de compression draco et meshopt ?

Ajoutez le composant MeshCompression pour sélectionner quelle compression doit être appliquée par glTF exporté.

image

  • Pour modifier la compression de la scène actuelle, ajoutez-le simplement n'importe où dans votre scène racine.
  • Pour modifier la compression d'un prefab ou NestedGltf, ajoutez-le à un GltfObject ou au prefab qui est référencé / exporté par l'un de vos composants.
  • Pour modifier la compression d'une scène référencée, ajoutez-le simplement à la scène référencée qui est exportée
Où trouver les options de simplification de maillage pour réduire le nombre de sommets lors de la compilation pour la production ?

Sélectionnez un maillage et ouvrez les options de l'importer Needle pour voir les options disponibles pour le maillage sélectionné : image

Textures progressives (Progressive Textures)

Vous pouvez également ajouter le composant Progressive Texture Settings n'importe où dans votre scène, pour que toutes les textures de votre projet soient chargées progressivement. Le chargement progressif n'est pas appliqué aux lightmaps ni aux textures de skybox pour le moment.

Avec le chargement progressif, les textures seront d'abord chargées en utilisant une version de résolution inférieure. Une version de qualité complète sera chargée dynamiquement lorsque la texture deviendra visible. Cela réduit généralement considérablement le chargement initial de votre scène.

Comment activer le chargement progressif des textures ?

Les textures progressives peuvent être activées par texture
ou pour toutes les textures de votre projet :

image

Activer pour toutes les textures du projet qui n'ont pas de paramètre spécifique :

image

LODs de maillage automatiques (Level of Detail)

Depuis Needle Engine 3.36, nous générons automatiquement des maillages LOD et basculons entre eux à l'exécution. Les LODs sont chargés à la demande et uniquement lorsque nécessaire, donc cette fonctionnalité réduit à la fois votre temps de chargement et les performances.

Avantages clés

  • Temps de chargement initial plus rapide
  • Temps de rendu plus rapide grâce à moins de sommets à l'écran en moyenne
  • Raycasting plus rapide grâce à l'utilisation des maillages LOD

Vous pouvez soit désactiver la génération de LOD pour l'ensemble de votre projet dans le composant Progressive Loading Settings, soit dans les paramètres du Mesh Importer.

image

image

Options de déploiement

Déployer sur Glitch 🎏

Glitch offre un moyen rapide et gratuit pour chacun d'héberger de petits et grands sites web. Nous offrons un moyen facile de remixer et de déployer sur une nouvelle page Glitch (basée sur notre modèle de départ), et aussi d'exécuter un serveur réseau minimaliste sur la même page Glitch si nécessaire.

Vous pouvez déployer sur Glitch en ajoutant le composant DeployToGlitch à votre scène et en suivant les instructions.

Notez que les projets gratuits hébergés sur Glitch ne doivent pas dépasser environ 100 Mo. Si vous avez besoin de téléverser un projet plus volumineux, envisagez d'utiliser une autre cible de déploiement.

Comment déployer sur Glitch depuis Unity ?
  1. Ajoutez le composant DeployToGlitch à l'objet de jeu (GameObject) qui possède également le composant ExportInfo.

  2. Cliquez sur le bouton Create new Glitch Remix sur le composant image

  3. Glitch va maintenant créer un remix du template. Copiez l'URL depuis votre navigateur image

  4. Ouvrez à nouveau Unity et collez l'URL dans le champ Project Name de votre composant Deploy To Glitchimage

  5. Attendez quelques secondes que Unity reçoive votre clé de déploiement depuis Glitch (cette clé est stockée en toute sécurité dans le fichier .env sur Glitch. Ne la partagez pas avec d'autres, toute personne disposant de cette clé pourra téléverser sur votre site Glitch) waiting for the key

  6. Une fois la clé de déploiement reçue, vous pouvez cliquer sur le bouton Build & Deploy pour téléverser sur Glitch.

Comment déployer sur Glitch depuis Blender ?

Deploy To Glitch from Blender component

  1. Trouvez le panneau Deploy To Glitch dans l'onglet Scene
  2. Cliquez sur le bouton Remix on glitch sur le composant
  3. Votre navigateur ouvrira le template du projet Glitch
  4. Attendez que Glitch génère un nouveau projet
  5. Copiez-collez l'URL du projet dans le panneau Blender DeployToGlitch comme nom de projet (vous pouvez coller l'URL complète, le panneau extraira les informations nécessaires)
  6. Sur Glitch, ouvrez le fichier .env et entrez un mot de passe dans le champ Variable Value à côté de la DEPLOY_KEY
  7. Entrez le même mot de passe dans Blender dans le champ Key
  8. Cliquez sur le bouton DeployToGlitch pour compiler et téléverser votre projet sur Glitch. Un navigateur s'ouvrira lorsque le téléversement sera terminé. Essayez d'actualiser la page si elle s'affiche en noir après l'ouverture.

Dépannage Glitch

Si vous cliquez sur Create new Glitch Remix et que le navigateur affiche une erreur comme there was an error starting the editor, vous pouvez cliquer sur OK. Ensuite, allez sur glitch.com et assurez-vous d'être connecté. Après cela, vous pouvez essayer de cliquer à nouveau sur le bouton dans Unity ou Blender.

Déployer sur Netlify

Comment déployer sur Netlify depuis Unity ?

Ajoutez simplement le composant DeployToNetlify à votre scène et suivez les instructions. Vous pouvez créer de nouveaux projets en un clic ou en déployant sur des projets existants.

Deploy to netlify component

Deploy to netlify component

Déployer sur Vercel

  1. Créez un nouveau projet sur vercel
  2. Ajoutez votre projet web à un dépôt github
  3. Ajoutez le dépôt à votre projet sur vercel

Voir notre projet exemple pour la configuration du projet

Déployer sur itch.io

Comment déployer sur itch.io depuis Unity ?
  1. Créez un nouveau projet sur itch.io

  2. Définissez Kind of project (Type de projet) sur HTMLimage

  3. Ajoutez le composant DeployToItch à votre scène et cliquez sur le bouton Buildimage

  4. Attendez que la compilation se termine, un dossier avec le zip final s'ouvrira automatiquement lorsqu'elle sera terminée.

  5. Téléchargez le zip final sur itch.io 20220920-104629_Create_a_new_project_-itch io-_Google_Chrome-needle

  6. Sélectionnez This file will be played in the browser (Ce fichier sera joué dans le navigateur) image

  7. Enregistrez votre page itch et visualisez la page du projet itch. Elle devrait maintenant charger votre projet Needle Engine 😊

Paramètres optionnels

image

Itch.io : impossible de trouver index.html

Failed to find index.html

image Si vous voyez cette erreur après avoir téléversé votre projet, assurez-vous de ne pas téléverser un index.html compressé en gzip. Vous pouvez désactiver la compression gzip dans vite.config.js dans le dossier de votre projet web Needle. Il suffit de supprimer la ligne viteCompression({ deleteOriginFile: true }). Puis compilez à nouveau votre projet et téléchargez-le sur itch.

Déployer sur FTP

Comment déployer sur mon serveur FTP depuis Unity ?
  1. Ajoutez le composant DeployToFTP¹ sur un objet de jeu (GameObject) dans votre scène (il est recommandé de l'ajouter au même GameObject que ExportInfo - mais ce n'est pas obligatoire)
  2. Attribuez un asset de serveur FTP et remplissez les champs serveur, nom d'utilisateur et mot de passe si vous ne l'avez pas déjà fait ² Cet asset contient les informations d'accès à votre serveur FTP - vous les obtenez lorsque vous créez un nouveau compte FTP chez votre fournisseur d'hébergement
  3. Cliquez sur le bouton Build & Deploy sur le composant DeployToFTP pour compiler votre projet et le téléverser sur votre compte FTP.

Deploy to FTP component in Unity¹ Composant Deploy to FTP

Deploy to FTP server asset² Asset de serveur FTP contenant les informations d'accès de votre compte utilisateur FTP

Deploy to FTP component in Unity with server asset assignedComposant Deploy To FTP après l'affectation de l'asset serveur. Vous pouvez déployer directement dans un sous-dossier sur votre serveur en utilisant le champ de chemin.

Comment déployer manuellement sur mon serveur FTP ?
  1. Ouvrez File > Build Settings, sélectionnez Needle Engine, et cliquez sur Build
  2. Attendez que la compilation se termine - le dossier dist résultant s'ouvrira automatiquement après l'exécution de toutes les étapes de compilation et de compression.
  3. Copiez les fichiers du dossier dist vers votre espace de stockage FTP.

Voilà ! 😉

20220830-003602_explorer-needle

Note : Si le résultat ne fonctionne pas une fois téléversé, il se peut que votre serveur web ne prenne pas en charge la diffusion de fichiers compressés en gzip. Vous avez deux options pour résoudre le problème : Option 1 : Vous pouvez essayer d'activer la compression gzip sur votre serveur en utilisant un fichier .htaccess ! Option 2 : Vous pouvez désactiver la compression gzip dans les paramètres de compilation dans File/Build Window en sélectionnant la plateforme Needle Engine.

Note : Si vous rencontrez des erreurs pendant la compression, veuillez nous en informer et signaler un bug ! Si votre projet fonctionne localement et échoue uniquement lors des compilations de production, vous pouvez vous débloquer immédiatement en effectuant une compilation de développement (Development Build). Pour cela, activez simplement l'option Development Build dans les Build Settings.

Unity build window showing Needle Engine platform

Activation de gzip à l'aide d'un fichier .htaccess

Pour activer la compression gzip sur votre serveur FTP, vous pouvez créer un fichier nommé .htaccess dans le répertoire vers lequel vous souhaitez télécharger (ou un répertoire parent). Insérez le code suivant dans votre fichier .htaccess et enregistrez/téléchargez-le sur votre serveur :

<IfModule mod_mime.c>
RemoveType .gz
AddEncoding gzip .gz
AddType application/javascript .js.gz

Déployer sur Github Pages

Comment déployer sur Github Pages depuis Unity ?

Ajoutez le composant DeployToGithubPages à votre scène et copiez-collez le dépôt github (ou l'url github pages) vers lequel vous souhaitez déployer. Deploy To github pages component

Dépannage github pages

  • J'ai déployé sur github pages mais aucune action ne s'exécute / le site web n'est pas en ligne
    • Si vous avez déployé pour la première fois, cela peut prendre quelques minutes avant que votre site web ne soit disponible. Vous pouvez vérifier l'onglet Actions sur github (/actions) pour voir le processus de déploiement.
    • Si votre site web n'est pas en ligne après quelques minutes ou si vous ne voyez aucune exécution de workflow dans l'onglet Actions sur github, alors allez sur la page des paramètres Github Pages (/settings/pages) et assurez-vous que la Branch est définie sur gh-pages.

Déployer sur Facebook Instant Games

Avec Needle Engine, vous pouvez compiler automatiquement pour Facebook Instant Games Aucun ajustement manuel de votre application ou jeu web n'est requis.

Comment déployer sur Facebook Instant Games depuis Unity ?
  • Ajoutez le composant Deploy To Facebook Instant Games à votre scène : Deploy to facebook instant games component
  • Cliquez sur le bouton Build For Instant Games
  • Une fois la compilation terminée, vous obtiendrez un fichier ZIP que vous pourrez télécharger sur votre application Facebook.
  • Sur Facebook, ajoutez le module Instant Games et allez dans Instant Games/Web hostingHosting a facebook instant games
  • Vous pouvez télécharger votre zip en utilisant le bouton Upload version (1). Une fois le téléchargement terminé et le zip traité, cliquez sur le bouton Stage for testing pour tester votre application (2, ici le bouton bleu) ou Push to production (le bouton avec l'icône étoile) Upload the zip to facebook instant games
  • C'est tout - vous pouvez ensuite cliquer sur le bouton Play à côté de chaque version pour tester votre jeu sur Facebook.
Comment créer une application sur Facebook (avec les capacités Instant Games)
  1. Créez une nouvelle application et sélectionnez Other. Puis cliquez sur Next. Create facebook instant games app

  2. Sélectionnez le type Instant GamesCreate facebook instant games app

  3. Après avoir créé l'application, ajoutez le produit Instant Games. Add instant games product

Vous trouverez ici la documentation officielle d'Instant Games sur Facebook. Notez que tout ce que vous avez à faire est de créer une application avec les capacités Instant Games. Nous nous occuperons de tout le reste et aucun ajustement manuel de votre site web Needle Engine n'est requis.

Compiler vers un dossier (Build To Folder)

Dans Unity, ouvrez File/Build Settings et sélectionnez Needle Engine pour les options :

image

image

Pour compiler votre projet web en vue de le télécharger sur n'importe quel serveur web, vous pouvez cliquer sur Build dans la fenêtre Build Settings de l'éditeur Unity. Vous pouvez cocher la case Development Build pour omettre la compression (voir ci-dessous), ce qui nécessite que toktx soit installé sur votre machine.

Pour prévisualiser localement votre compilation finale, vous pouvez utiliser le bouton Preview Build en bas de la fenêtre. Ce bouton effectuera d'abord une compilation normale, puis démarrera un serveur local dans le répertoire contenant les fichiers finaux afin que vous puissiez voir ce que vous obtenez une fois ces fichiers téléchargés sur votre serveur web.

Nodejs est uniquement requis pendant le développement. Le site web distribué (utilisant notre template vite par défaut) est une page statique qui ne dépend pas de Nodejs et peut être placée sur n'importe quel serveur web standard. Nodejs est requis si vous souhaitez exécuter notre serveur réseau minimaliste sur le même serveur web (automatiquement inclus dans le processus de déploiement Glitch).


Flux de travail de déploiement multiplateforme

Il est possible de créer des projets Unity réguliers où vous pouvez compiler à la fois pour Needle Engine et pour les plateformes Unity régulières telles que Desktop ou même WebGL. Notre approche de "mappage de composants" signifie qu'aucune logique d'exécution n'est modifiée à l'intérieur d'Unity - si vous le souhaitez, vous pouvez utiliser le mode Play (Play Mode) et compiler régulièrement pour d'autres plateformes cibles. Dans certains cas, cela signifiera que vous avez du code dupliqué (code C# et logique TypeScript correspondante). La quantité de travail supplémentaire qui en résulte dépend de votre projet.

Entrer en mode Play (Play Mode) dans Unity Dans Project Settings > Needle Engine, vous pouvez désactiver Override Play Mode et Override Build settings pour basculer entre le processus de compilation de Needle et le processus de compilation d'Unity : image

Arguments de ligne de commande Needle Engine pour Unity

Needle Engine pour Unity prend en charge divers arguments de ligne de commande pour exporter des assets uniques (Prefabs ou Scenes) ou pour compiler un projet web entier en mode batch (sans fenêtre).

La liste suivante présente un tableau des options disponibles :

-scenechemin vers une scène ou un asset à exporter, par exemple Assets/path/to/myObject.prefab ou Assets/path/to/myScene.unity
-outputPath <path/to/output.glb>définit le chemin de sortie pour la compilation (valide uniquement lors de la compilation d'une scène)
-buildProductionexécute une compilation de production
-buildDevelopmentexécute une compilation de développement
-debugouvre une fenêtre de console pour le débogage

Page automatiquement traduite à l'aide de l'IA

Suggest changes
Dernière mise à jour:: 11/06/2025 12:25
Prev
Tester sur les appareils locaux
Next
Comment déboguer