1. Livres et vidéos
  2. Unity3D - Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)

Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows...)

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre présente les bases de la création d'une application multiplateformes avec Unity3D et le langage C#, dans le cadre de jeux vidéos comme d'applications d'entreprises. Il s'adresse à des développeurs C# qui débutent dans ce type de développement. Même si la création d'une application 2D/3D, multiplateformes, paraît bien complexe à un débutant, les auteurs se sont appuyés sur des exemples simples et précis pour guider le lecteur dans ses premiers pas. Après la lecture de ce livre, il sera en mesure de créer son propre jeu et de le déployer sur les différentes plateformes ciblées par Unity3D : iPhone, iPad, Android, Windows, Windows Phone, Xbox, Blackberry...

Après une présentation générale d'Unity3D et particulièrement de son éditeur, les auteurs détaillent les différents éléments, ou GameObjects, manipulés dans Unity3D et leurs composants. Un chapitre est bien sûr consacré au scripting (création, déboggage, cycle de vie,...) et aux coroutines, un autre aux interactions avec l'utilisateur (entrées clavier, souris, tactile...) puis à l'utilisation des différents assets, au système d'animation et au moteur physique d'Unity3D. La description complète de la création d'une interface utilisateur (système Canvas, système de positionnement et d'ancrage, éléments d'affichage...) aboutit naturellement au chapitre sur le réseau et le système multijoueurs. Les derniers chapitres sont consacrés à la génération des packages, plateforme par plateforme et à leur déploiement.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.


Les chapitres du livre :
Avant-propos – Unity et le développement de jeux vidéo – Éditeur, pièce maîtresse – Le GameObject et ses composants – Le système de scripting – Interactions avec l'utilisateur – Utilisation des assets graphiques et audio – Le système d'animation – Le moteur physique – Unity UI et interfaces utilisateurs – Communication réseau et jeux multijoueurs – Génération et déploiement de package

Table des matières

  • Avant-propos
    • 1. Pourquoi ce livre ?
    • 2. À qui s'adresse cet ouvrage ?
    • 3. Structure de l'ouvrage
    • 4. Remerciements
  • Unity et le développement de jeux vidéo
    • 1. Qu’est-ce que Unity ?
      • 1.1 Introduction
      • 1.2 Les plateformes supportées
      • 1.3 Les licences
        • 1.3.1 Personal Edition
        • 1.3.2 Professional Edition
      • 1.4 La technologie
    • 2. Pour quels projets Unity est-il adapté ?
    • 3. Pourquoi utiliser Unity ?
    • 4. Quels outils utiliser ?
      • 4.1 MonoDevelop
      • 4.2 Visual Studio
    • 5. Les bases du fonctionnement du rendu
  • Éditeur, pièce maîtresse
    • 1. Présentation de l’éditeur
    • 2. Présentation de l’interface
      • 2.1 Les menus
        • 2.1.1 Menu File
        • 2.1.2 Menu Edit
        • 2.1.3 Menu Assets
        • 2.1.4 Menu GameObject
        • 2.1.5 Menu Component
        • 2.1.6 Menu Window
        • 2.1.7 Menu Help
      • 2.2 La vue Scene
        • 2.2.1 Présentation de la vue
        • 2.2.2 Manipulation des objets et du point de vue
        • 2.2.3 Barre d'outils
      • 2.3 La hiérarchie des objets
        • 2.3.1 Présentation
        • 2.3.2 Manipulation des objets
        • 2.3.3 Filtrage des objets
      • 2.4 La vue de rendu
        • 2.4.1 Présentation
        • 2.4.2 Modification de la résolution
        • 2.4.3 Statistiques de rendu
      • 2.5 La hiérarchie du projet
      • 2.6 La console
      • 2.7 L'Inspector
        • 2.7.1 Les propriétés de base
        • 2.7.2 Les composants de base
        • 2.7.3 Exposer des propriétés à travers l'Inspector
    • 3. Personnaliser l’éditeur pour ses besoins
      • 3.1 Personnaliser la disposition des vues
      • 3.2 Les menus personnalisés
        • 3.2.1 Créer un menu simple
        • 3.2.2 Créer un menu avec raccourci
        • 3.2.3 Créer un menu avec validation
        • 3.2.4 Créer un menu avec priorisation
        • 3.2.5 Créer un menu contextuel
        • 3.2.6 Modifier les menus de base de l'éditeur
      • 3.3 Personnaliser la scène
        • 3.3.1 Introduction
        • 3.3.2 Utilisation des gizmos
      • 3.4 Personnaliser l'Inspector
        • 3.4.1 Introduction
        • 3.4.2 Mise en place d'un affichage personnalisé
        • 3.4.3 Ajouter un bouton
        • 3.4.4 Ajouter une zone d'aide
        • 3.4.5 Les différents types de champs
        • 3.4.6 Aller plus loin
  • Le GameObject et ses composants
    • 1. La programmation par composition
      • 1.1 Présentation
      • 1.2 Le GameObject : le conteneur de composants
      • 1.3 Les différentes familles de composants
        • 1.3.1 Les meshes
        • 1.3.2 Les effets
        • 1.3.3 La physique 3D
        • 1.3.4 La physique 2D
        • 1.3.5 La navigation
        • 1.3.6 L'audio
        • 1.3.7 Le rendu
        • 1.3.8 La disposition de l'interface utilisateur
        • 1.3.9 L'interface utilisateur
        • 1.3.10 Les scripts
        • 1.3.11 Le réseau
        • 1.3.12 Les événements
        • 1.3.13 Les autres
    • 2. La classe GameObject
      • 2.1 Présentation
      • 2.2 Manipuler un GameObject
        • 2.2.1 Ajouter un GameObject
        • 2.2.2 Supprimer un GameObject
    • 3. Manipuler les composants dans l'éditeur
      • 3.1 Ajouter un composant
      • 3.2 Supprimer un composant
      • 3.3 Copier un composant
      • 3.4 Mise à zéro d'un composant
    • 4. Réutiliser ses objets grâce aux préfabriqués
      • 4.1 Présentation
      • 4.2 Création d'un prefab
      • 4.3 Réutilisation d'un prefab
        • 4.3.1 À partir de l'éditeur
        • 4.3.2 À partir d'un script
        • 4.3.3 Modification d'un prefab
  • Le système de scripting
    • 1. Les scripts, des composants à part
      • 1.1 Définition
      • 1.2 Ajouter un script à un GameObject
    • 2. Comment afficher des informations de débogage
      • 2.1 Écrire dans la console
      • 2.2 Dessiner des lignes dans la scène
      • 2.3 Prendre le contrôle de l'exécution
    • 3. Le cycle de vie des scripts
      • 3.1 Initialisation du script
        • 3.1.1 La méthode Awake
        • 3.1.2 La méthode Start
        • 3.1.3 La méthode OnEnable
      • 3.2 Les événements pendant la boucle de jeu
        • 3.2.1 La méthode Update
        • 3.2.2 La méthode LateUpdate
        • 3.2.3 La méthode FixedUpdate
      • 3.3 Les événements liés au rendu graphique
        • 3.3.1 Les méthodes OnBecameVisible et OnBecameInvisible
        • 3.3.2 La méthode OnGUI
        • 3.3.3 La méthode OnDrawGizmos et OnDrawGizmosSelected
      • 3.4 Les événements de fin de vie ou de remise à zéro
        • 3.4.1 La méthode OnDisable
        • 3.4.2 La méthode OnDestroy
        • 3.4.3 La méthode OnApplicationQuit
        • 3.4.4 La méthode OnApplicationFocus
        • 3.4.5 La méthode Reset
        • 3.4.6 La méthode OnValidate
    • 4. Comment les scripts interagissent avec l’extérieur
      • 4.1 Permettre la configuration d'un script
      • 4.2 Accéder au GameObject parent
      • 4.3 Manipuler les composants de base
        • 4.3.1 Trouver un composant déjà ajouté
        • 4.3.2 Ajouter un composant
        • 4.3.3 Supprimer un composant
      • 4.4 Trouver un composant dans une hiérarchie de GameObjects
      • 4.5 Utiliser l’éditeur et un binding pour obtenir un composant
      • 4.6 Les événements Unity
        • 4.6.1 Déclarer un événement simple
        • 4.6.2 Réagir à la levée d'un événement
        • 4.6.3 Déclarer un événement complexe
        • 4.6.4 Écrire sa propre méthode de réaction à un événement
    • 5. Écriture de code pour une seule plateforme
      • 5.1 Utiliser les propriétés de la classe Application
      • 5.2 Utiliser les directives de précompilation
    • 6. Exécuter des actions simultanément avec les coroutines
      • 6.1 Définition
      • 6.2 Pourquoi les coroutines sont nécessaires
      • 6.3 Mise en œuvre
        • 6.3.1 Déclarer une coroutine
        • 6.3.2 Écrire le corps de la coroutine
        • 6.3.3 Lancer une coroutine
        • 6.3.4 Stopper une coroutine
    • 7. Quelques design patterns utiles
      • 7.1 Singleton
        • 7.1.1 Définition
        • 7.1.2 Implémentation du singleton dans Unity
        • 7.1.3 Instanciation du singleton
      • 7.2 Object Pool
        • 7.2.1 La problématique à résoudre
        • 7.2.2 La solution théorique
        • 7.2.3 Mise en œuvre technique
  • Interactions avec l’utilisateur
    • 1. Présentation générale
    • 2. Prise en charge par défaut
      • 2.1 Le gestionnaire de commande
      • 2.2 Propriétés d'un axe virtuel
      • 2.3 Utilisation dans un script personnalisé
        • 2.3.1 La classe Input
        • 2.3.2 Exemples d'utilisation du clavier
        • 2.3.3 Exemples d'utilisation de la souris
        • 2.3.4 Exemples d'utilisation du tactile
    • 3. Utilisation du microphone et de la webcam
      • 3.1 Utilisation du micro
        • 3.1.1 Présentation
        • 3.1.2 La classe Microphone
        • 3.1.3 Exemple d'utilisation
      • 3.2 Utilisation de la webcam
        • 3.2.1 Présentation
        • 3.2.2 La classe WebCamTexture
        • 3.2.3 Exemple d'utilisation
  • Utilisation des assets graphiques et audio
    • 1. La caméra
      • 1.1 Présentation
      • 1.2 Paramétrage de l'affichage
        • 1.2.1 Affichage des objets
        • 1.2.2 Vision et projection
      • 1.3 La vue Frustum
        • 1.3.1 Définition
        • 1.3.2 Expérimentations
        • 1.3.3 Limites d'affichage
        • 1.3.4 Différence entre la vue perspective et la vue orthographique
    • 2. Les lumières
      • 2.1 Présentation
      • 2.2 Paramétrage des lumières
        • 2.2.1 Point
        • 2.2.2 Spot
        • 2.2.3 Directionnelle
        • 2.2.4 Aire
    • 3. Les shaders et matériaux
      • 3.1 Introduction
      • 3.2 Les matériaux
        • 3.2.1 Introduction
        • 3.2.2 Les propriétés
        • 3.2.3 Les méthodes
        • 3.2.4 Création d'un matériau
      • 3.3 Les shaders
        • 3.3.1 Introduction
        • 3.3.2 Le Standard Shader
        • 3.3.3 Les Built-in Shaders
        • 3.3.4 Les shaders personnalisés
    • 4. Les meshes
      • 4.1 Présentation
      • 4.2 Mesh Filter
      • 4.3 Mesh Renderer
        • 4.3.1 Introduction
        • 4.3.2 Les propriétés
      • 4.4 Skinned Mesh Renderer
      • 4.5 Text Mesh
    • 5. Les textures
      • 5.1 Présentation
      • 5.2 Les types de texture
      • 5.3 Les textures simples
      • 5.4 Les Normal Maps
    • 6. Les sprites
      • 6.1 Présentation
      • 6.2 Sprite Renderer
      • 6.3 Sprite Editor
    • 7. L'audio
      • 7.1 Introduction
      • 7.2 Audio Listener
      • 7.3 Audio Clip
      • 7.4 Audio Source
      • 7.5 Audio Mixer
      • 7.6 Les filtres et effets
    • 8. Batching et Draw Calls
      • 8.1 Présentation
      • 8.2 Static Batching
      • 8.3 Dynamic Batching
  • Le système d’animation
    • 1. Présentation de Mecanim
      • 1.1 Présentation
      • 1.2 Les animations
        • 1.2.1 Introduction
        • 1.2.2 La fenêtre Animation
      • 1.3 Les animateurs
        • 1.3.1 Introduction
        • 1.3.2 La fenêtre Animator
        • 1.3.3 Ajouter un état
        • 1.3.4 Ajouter une transition
    • 2. Créer des animations
      • 2.1 Mise en place de la scène
      • 2.2 Création de l'animation
      • 2.3 Configuration de l'animateur
      • 2.4 Ajout de paramètres
      • 2.5 Ajout de conditions
      • 2.6 Lancement de l'animation
    • 3. Avatar
      • 3.1 Introduction
      • 3.2 Créer un avatar
  • Le moteur physique
    • 1. Présentation du moteur physique
    • 2. Le composant Rigidbody
      • 2.1 Introduction
      • 2.2 La gravité
      • 2.3 Les forces
      • 2.4 La cinématique
    • 3. Le composant Collider
      • 3.1 Introduction
      • 3.2 Statique ou dynamique
      • 3.3 Les colliders primitifs
        • 3.3.1 SphereCollider
        • 3.3.2 BoxCollider
        • 3.3.3 CapsuleCollider
      • 3.4 Les colliders par composition
      • 3.5 Le MeshCollider
      • 3.6 Les matériaux physiques
      • 3.7 Les événements
        • 3.7.1 Les déclencheurs
        • 3.7.2 Les événements de script
      • 3.8 Exemples de collision
        • 3.8.1 Entre un collider statique et un collider dynamique
        • 3.8.2 Entre des colliders dynamiques
    • 4. Les composants Joints
      • 4.1 Introduction
      • 4.2 FixedJoint
      • 4.3 SpringJoint
      • 4.4 HingeJoint
      • 4.5 CharacterJoint
      • 4.6 ConfigurableJoint
  • Unity UI et interfaces utilisateurs
    • 1. Présentation générale
      • 1.1 Définition
      • 1.2 Un peu d'histoire
      • 1.3 Le nouveau système d'UI
    • 2. Le système de Canvas
      • 2.1 Définition
      • 2.2 Nombre de Canvas dans une scène
      • 2.3 Les différents modes de rendu
        • 2.3.1 Par défaut : Screen Space - Overlay
        • 2.3.2 Screen Space - Camera
        • 2.3.3 World Space
      • 2.4 Adaptation du rendu à la taille de l'écran
        • 2.4.1 Par défaut : Constant Pixel Size
        • 2.4.2 Constant Physical Size
        • 2.4.3 Scale With Screen Size
    • 3. Le système de positionnement et d’ancrage
      • 3.1 Le composant RectTransform
      • 3.2 Le système d'ancrage
        • 3.2.1 Définition
        • 3.2.2 Valeurs prédéfinies
      • 3.3 Positionnement et dimensionnement de l'élément
        • 3.3.1 La zone d'ancrage est un point
        • 3.3.2 La zone d'ancrage est une ligne verticale ou horizontale
        • 3.3.3 La zone d'ancrage est un rectangle
        • 3.3.4 Schéma récapitulatif des positionnements
      • 3.4 Comportement de l'éditeur
    • 4. Les différents éléments d’affichage
      • 4.1 Text : afficher un texte
        • 4.1.1 Configuration de l'affichage des lettres
        • 4.1.2 Configuration de la disposition
        • 4.1.3 Utilisation de texte riche
        • 4.1.4 Utilisation via un script
      • 4.2 RawImage : afficher une texture
        • 4.2.1 Description du composant
        • 4.2.2 Utilisation via un script
      • 4.3 Image : afficher un sprite
        • 4.3.1 Types d'affichage
        • 4.3.2 Utilisation du mode Filled
        • 4.3.3 Utilisation via un script
      • 4.4 Button : afficher un bouton pour réagir au clic
        • 4.4.1 Les différents états visuels
        • 4.4.2 Définir le sens de navigation au clavier
        • 4.4.3 Réagir au clic sur un bouton
        • 4.4.4 Utilisation d'un composant via un script
        • 4.4.5 Interactions avec les Selectable via un script
      • 4.5 InputField : afficher une zone de saisie de texte
        • 4.5.1 Configuration du composant
        • 4.5.2 Événements exposés
        • 4.5.3 Utilisation via un script
      • 4.6 Toggle et ToggleGroup : permettre un choix dans une liste
        • 4.6.1 Configuration du composant
        • 4.6.2 Assignation d'un ToggleGroup
        • 4.6.3 Événement du composant
        • 4.6.4 Utilisation via un script
      • 4.7 Slider : choisir une valeur numérique
        • 4.7.1 Configuration du composant
        • 4.7.2 Événement exposé
        • 4.7.3 Utilisation via un script
      • 4.8 Scrollbar : afficher une barre de défilement
        • 4.8.1 Configuration du script
        • 4.8.2 Événement exposé
        • 4.8.3 Utilisation via un script
      • 4.9 ScrollRect et Mask : afficher une zone de défilement
        • 4.9.1 Ajout d'un ScrollRect et de son contenu dans la scène
        • 4.9.2 Ajout d'un Mask pour contraindre l'affichage
        • 4.9.3 Ajout de barres de défilement
        • 4.9.4 Configuration du ScrollRect
        • 4.9.5 Événement exposé
        • 4.9.6 Utilisation via un script
    • 5. Les différents moyens de disposer les éléments
      • 5.1 Layout Element
        • 5.1.1 Configuration du LayoutElement
        • 5.1.2 Comportement du système de dimensionnement
      • 5.2 Horizontal Layout Group (HGL)
        • 5.2.1 Configuration du composant
        • 5.2.2 Comportement des mesures du composant
        • 5.2.3 Exemple de configuration utilisant les tailles flexibles
      • 5.3 Vertical Layout Group (VGL)
      • 5.4 Grid Layout Group (GLG)
        • 5.4.1 Configuration du composant
        • 5.4.2 Comportement des mesures du composant
      • 5.5 Content Size Fitter
        • 5.5.1 Configuration du composant
    • 6. Localisation d’une application
      • 6.1 Logique du composant de traduction
      • 6.2 Création des fichiers de ressources
      • 6.3 Lecture du fichier de traduction
      • 6.4 Interprétation du fichier de ressources
      • 6.5 Assignation de la valeur traduite
    • 7. Gestion des polices (font)
      • 7.1 Import d'une police
      • 7.2 Fonts dynamiques et statiques
  • Communication réseau et jeux multijoueurs
    • 1. Les jeux multijoueurs
      • 1.1 Introduction
      • 1.2 L'API haut niveau
        • 1.2.1 Introduction
        • 1.2.2 Concept du multijoueur
        • 1.2.3 Les principaux composants de l'API
      • 1.3 Création d'un jeu multijoueur
        • 1.3.1 Mise en place
        • 1.3.2 Création du personnage
        • 1.3.3 Paramétrage et synchronisation du personnage
        • 1.3.4 Ajout du Network Manager
      • 1.4 UNET Service
        • 1.4.1 Introduction
        • 1.4.2 La classe NetworkMatch
    • 2. Les classes WWW et WWWForm
  • Génération et déploiement de package
    • 1. Le player et les builds : concepts de base
      • 1.1 Définition
      • 1.2 Différents formats de builds
    • 2. Configuration du player
      • 2.1 Description
      • 2.2 Resolution and Presentation (résolution et présentation)
        • 2.2.1 Plateformes mobiles (Android, iOS, Windows, Tizen...)
        • 2.2.2 Plateformes web (Web Player et WebGL)
        • 2.2.3 Plateformes autonomes (PC, Mac, TV...)
      • 2.3 Icon (îcones)
        • 2.3.1 Plateformes Windows Store
        • 2.3.2 Plateformes Windows Phone 8.0
        • 2.3.3 Autres plateformes
      • 2.4 Splash Image (image de démarrage)
      • 2.5 Other Settings (autres paramètres)
        • 2.5.1 Rendering (affichage et technique de rendu)
        • 2.5.2 Identification
        • 2.5.3 Configuration
        • 2.5.4 Optimization (optimisations)
      • 2.6 Publishing settings (paramètres de publication)
    • 3. Génération du package
      • 3.1 Fenêtre de configuration et génération d'une build
        • 3.1.1 Choix des scènes à inclure
        • 3.1.2 Choix de la plateforme
        • 3.1.3 Configuration du type de build
        • 3.1.4 Qu'y a-t-il dans mon package ?
    • 4. Génération plateforme par plateforme
      • 4.1 Génération d'un package Android
        • 4.1.1 Installation du SDK et configuration d'Unity
        • 4.1.2 Génération du package
        • 4.1.3 Signature du package
      • 4.2 Génération d'une application iOS
        • 4.2.1 Génération du projet Xcode
        • 4.2.2 Support de la version 64 bits d'iOS
      • 4.3 Génération d'une application Windows Store
        • 4.3.1 Installation et activation du SDK Microsoft
        • 4.3.2 Génération du package
      • 4.4 Génération d'une application autonome (standalone)
      • 4.5 Génération d'un player web
      • 4.6 Génération d'un player WebGL
    • 5. Personnaliser le processus de build
      • 5.1 Déclencher le processus de build
        • 5.1.1 Création d'un élément de menu
        • 5.1.2 Récupérer les différentes scènes à inclure
        • 5.1.3 Récupérer le chemin de compilation
        • 5.1.4 Lancer la compilation
      • 5.2 Appeler un processus/utilitaire externe ou lancer l'application
      • 5.3 Copier-coller différents fichiers
      • 5.4 Exécuter un script à la fin d'une build
    • 6. Créer son propre plugin
      • 6.1 Le principe des plugins
      • 6.2 Utilisation d'un plugin Android
      • 6.3 Utilisation d'un plugin iOS
        • 6.3.1 Appel d'un plugin standard
        • 6.3.2 Intégration automatique de code source Objective-C
      • 6.4 Création d'un plugin Windows Phone 8.0
    • 7. Exécution des scripts : que se passe-t-il sous le capot ?
      • 7.1 Jusqu'à présent : Mono
      • 7.2 Le futur : IL2CPP
    • 8. Réduction de la taille du package
      • 8.1 Déterminer la répartition du poids en fonction des composants
      • 8.2 Le stripping
        • 8.2.1 Le principe
        • 8.2.2 Attention à la réflexion
        • 8.2.3 Stripping avec IL2CPP
      • 8.3 Niveau de compatibilité .NET
      • 8.4 Optimisation des textures
    • Index

Auteurs

Jonathan ANTOINEEn savoir plus

Jonathan ANTOINE est développeur .NET chez Infinite Square. Il est reconnu Microsoft MVP (Most Valuable Professional) dans la catégorie Visual Studio and Development Technologies & Windows Development.

Depuis quelques années, Jonathan se passionne pour le développement de jeux vidéos avec Unity3D. N'étant pas issu de formations spécialisées dans le développement de jeux vidéos, il s'est heurté à la plupart des problématiques que va rencontrer le lecteur. S'appuyant sur son expertise en tant que développeur .NET mais aussi en tant que game developer sur différents jeux multiplateformes, il a su écrire un livre parfaitement accessible aux développeurs débutants dans le monde de la 2D/3D.

Maxime FRAPPATEn savoir plus

Maxime FRAPPAT est consultant sénior chez Aneo. Il est reconnu Microsoft MVP (Most Valuable Professional) dans la catégorie Visual Studio and Development Technologies, et depuis quelques années, il se passionne pour le développement multiplateforme. Il est auteur d’un livre sur le développement de jeux vidéo avec Unity3D aux Editions ENI.

Caractéristiques

  • Niveau Confirmé à Expert
  • Nombre de pages 442 pages
  • Parution janvier 2016
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-7460-9904-3
    • EAN : 9782746099043
    • Ref. ENI : EP3DUNI
  • Niveau Expert
  • Parution janvier 2016
    • HTML
    • ISBN : 978-2-409-00072-0
    • EAN : 9782409000720
    • Ref. ENI : LNEP3DUNI

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (26,4 Mo)