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
- 1. Qu’est-ce que Unity ?
- É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
- 2.1 Les menus
- 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
- 1. La programmation par composition
- 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
- 3.1 Initialisation du script
- 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
- 7.1 Singleton
- 1. Les scripts, des composants à part
- 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
- 3.1 Utilisation du micro
- 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
- 1. La caméra
- 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
- 1. Présentation de Mecanim
- 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
- 4.1 Text : afficher un texte
- 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
- 5.1 Layout Element
- 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
- 1. Présentation générale
- 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
- 1. Les jeux multijoueurs
- Génération et déploiement de package
- 1. Le player et les builds : concepts de base
Soyez le premier à donner votre avis sur “Unity3D Développer en C# des applications 2D/3D multiplateformes (iOS, Android, Windows…)”