Unity Moteur de jeu 3D et 2D Cross platform: Windows, Mac, Linux, ios, Android, Blackberry, Xbox, Playstation, Wii C# / Javascript (UnityScript) / Boo Possibilité de créer ses propres outils Programmation par Composants
Composition Réutilisation du code (couplage des classes limité) Flexibilité, modularité Modification de comportement
Héritage
Héritage
Héritage
Héritage
Composition
Unity Interface Scene GameObject et Components Prefab Input Animation Physics Custom Assets Custom Inspector, Editor Window GUI
Interface
Interface Game : Rendu final Scene : Vue 3D permettant la sélection et le positionnement des éléments dans la scène Hierarchy : Ensemble des objets de la scene Inspector : Détails sur l'objet sélectionné Project : Ensemble des fichiers du projet
Scene Représente un niveau, un menu... Passer d'une scene à une autre : Application.LoadLevel("scene name"); Créer une scene : *File > New Scene
Game Object Tout objet de la scene est un GameObject Objet de base sur lequel on va ajouter des composants (MonoBehaviour) Tout GameObject contient un composant Transform : position, rotation, scale, parent *GameObject > Create Empty
MonoBehaviour Classe de base des composants Créer un nouveau composant: Clic droit sur la vue Project > Create > C# Script/ Javascript/Boo Script Ajouter un composant à un GameObject: Sélectionner un GameObject > Inspector > Add Component
MonoBehaviour Awake() Start() est appelé une fois que tous les GameObjects on reçu le message Awake, si l'objet est actif Update() est appelé à chaque frame si l'objet est actif OnDestroy() est appelé juste avant que l'objet soit détruit OnTriggerEnter() / OnTriggerExit() / OnTriggerStay()
Composants de base Transform
Composants de base Camera
Composants de base Light
Composants de base Mesh Filter / Mesh Renderer
Composants de base Collider OnTriggerEnter OnTriggerExit OnTriggerStay OnCollisionEnter OnCollisionExit OnCollisionStay
Composants de base Rigidbody
Composants de base Audio Listener Audio Source
Input Classe Input Clavier, souris, touch, gyroscope, boussole Les axes peuvent être modifiés dans *Edit>Project Settings>Input
Input GetKey("up") ou GetKey(KeyCode.LeftArrow) GetKeyDown(KeyCode.LeftArrow) / GetKeyUp(KeyCode.LeftArrow) GetAxis("Fire1")
Physics gravity : gravité appliquée à tous les Rigidbody de la scene. Raycast(Ray, out RaycastHit)
Animation Composant Animation animation.play("new Animation"); animation.stop();
Animation Animation View
Animation Animation Event
Animation Animation Event
Prefabs Permettent de créer plusieurs instances identiques d'un élément Les modifications du prefab sont répercutées sur ses instances On peut modifier les valeurs des composants des instances indépendamment
Prefabs Créer un prefab : Drag&Drop d'un objet sur le panel Project
Custom Assets Objets contenant des données du jeu (niveaux, stats, sorts...) Permettent aux game designers de modifier facilement les données Toute classe représentant un custom asset hérite de la classe ScriptableObject
Custom Assets System.Serializable Permet l'affichage dans l'inspector Panel des membres d'une instance de classe (ou de structure) intégrée dans une autre classe (ou structure)
Custom Assets
Custom Assets
Custom Assets
Custom Assets
Custom Inspector Modifier la façon dont un composant ou un custom asset est représenté dans l'inspectorpanel Faciliter la modification de données complexes
Custom Inspector
Custom Inspector
Editor Window Même principe que les custom inspector, mais dans un panel séparé Création de fenêtres intégrées Ouverture via un menu de la barre des tâches : [MenuItem("Window/Custom window editor")] static void ShowEditor() { EditorWindow.GetWindow<CustomWindowEditor>(); }
GUI Canvas
GUI
GUI
GUI