Guide complet Unity 6.0+ : Maîtriser la chasse aux cristaux (Partie 1 - Exploration)
De zero a un jeu complet:Guide complet intégration
Partie 1: Mouvements du joueur
Apercus du projet
Type de jeux: Platforme 2d
Theme:Aventure chasse aux cristals
Fonctionalité principales:Mouvements du joueurs, Combat, IA Ennemie, UI Menu , Audio
Style visuel:Simples Formes
Platofrme de jeux:Pc/Mobile
Structure/Configuration du projet
Étape0:Installtion unity 6.0
Télécharger unity hub
Installer unity 6.0 ou +
Une fois installation terminé, ouvrer uniy hub et créer votre compte unity si cela n'est pas encore le cas, apres que tu te sois connecté, installation de la derniere version de unity débutera automatiquement, Accepter les conditions legal unity pour obeternir une licence personnelle.
Étape1:Nouveau Projet
Ouvrer unity hub
Créer un nouveau project 2d→2D (Built-in Render Pipeline) or Template→Universal 2D(6.1)
Nom du projet: ChasseurDeCristal
Créer la structure de document suivantes:
Assets/
├── Scripts/
│ ├── Player/
│ ├── Enemies/
│ ├── Managers/
│ └── UI/
├── Sprites/
├── Audio/
├── Scenes/
└── Prefabs/
Étape2:Configuration Caméra
Configurer les paramètres de la cameras:
Position: (0, 0, -10)
Taille: 5 (for 2D orthographic)
Arrière-Plan: Environment→Background : Bleu foncé (#1a1a2e)

Configurations de la plateforme
Créer les figures dans unity
1.La scene
Créer les calques Main Camera→(Inspector)Layer→Add Layer:
Ground (Layer 6)
Enemy (Layer 7)
Player (Layer 8)
2.Le Terrain
Créer un GameObject Vide → intitulé: "Ground" SampleScene →(Click Droit) GameObject→Create Empty
Ajouter un Component → Sprite Renderer
Créer un Sprite: Ground →Click Droit → Sprites → Square
Agrandir a la forme désirée
Changer la couleur en gris
Ajouter un Box Collider 2D Ground/Square→Add Component
Assigné le Layer "Ground"
3.Le joueur
Créer un GameObject Vide → intitulé: "Player" SampleScene →(Click Droit) GameObject→Create Empty
Ajouter un Component → Sprite Renderer
Créer un Sprite: Player→Click Droit → 2D Object → Sprites → Square
Agrandir de (1, 1.5, 1) proportions du joueur
Changer la couleur a blue
Ajouter un Rigidbody2D (Freeze Z rotation) Player/Square→Add Component
Ajouter un Capsule Collider 2D Player/Square→Add Component
Créer des objects enfants intitulés "GroundCheck" et "AttackPoint" Player/Square→(Click Droit) GameObject→Create Empty:
GroundCheck Position: (-0.25, -0.5, 0)
AttackPoint Position:(0.5, 0, 0)
Créer le script PlayerController.cs Player/Square→Add Component
Assigné le Layer "Player"
A la fin de cette section, votre scène devrait ressembler a la capture suivante:

Configuration du Déplacements du joueur
Avant de commencer suivez ce guide vidéo pour configurer le nouveau Input System de unity
https://www.youtube.com/watch?v=BXmUemP3a6o
Étape1:Configurer Input Action
Créer un nouveau input action intituté "PlayerInputActions" Add Component→'PlayerInput'
Script de mouvement(PlayerController.cs)
using UnityEngine; using UnityEngine.InputSystem; public class PlayerController : MonoBehaviour { [Header("Movement Settings")] public float moveSpeed = 5f; private Rigidbody2D rb; private Vector2 moveInput; private PlayerInput playerInput; void Start() { rb = GetComponent<Rigidbody2D>(); playerInput = GetComponent<PlayerInput>(); } void Update() { // Get movement input from the new Input System moveInput = playerInput.actions["Move"].ReadValue<Vector2>(); } void FixedUpdate() { rb.linearVelocity = new Vector2(moveInput.x * moveSpeed, rb.linearVelocity.y); } }
Attacher PlayerController.cs au joueur Player/Square→Add Component
Saut du joueur: étendre le script PlayerController.cs
[Header("Jump Settings")]
public float jumpForce = 10f;
public Transform groundCheck;
public LayerMask groundLayer;
public float groundCheckRadius = 0.2f;
private bool isGrounded;
void Start()
{
rb = GetComponent<Rigidbody2D>();
playerInput = GetComponent<PlayerInput>();
if (groundCheck == null)
{
GameObject groundCheckObj = new GameObject("GroundCheck");
groundCheckObj.transform.SetParent(transform);
groundCheckObj.transform.localPosition = new Vector3(0, -0.5f, 0);
groundCheck = groundCheckObj.transform;
}
}
void Update()
{
moveInput = playerInput.actions["Move"].ReadValue<Vector2>();
CheckGrounded();
// Jump input using new Input System
if (playerInput.actions["Jump"].WasPressedThisFrame() && isGrounded)
{
Jump();
}
}
void CheckGrounded()
{
isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, groundLayer);
}
void Jump()
{
rb.linearVelocity = new Vector2(rb.linearVelocity.x, jumpForce);
}
void OnDrawGizmosSelected()
{
// Visualize ground check
if (groundCheck != null)
{
Gizmos.color = isGrounded ? Color.green : Color.red;
Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);
}
}
Retournement du joueur(PlayerController.cs):
private bool facingRight = false; private SpriteRenderer spriteRenderer; void Start() { rb = GetComponent<Rigidbody2D>(); spriteRenderer = GetComponent<SpriteRenderer>(); playerInput = GetComponent<PlayerInput>(); } void FixedUpdate() { rb.linearVelocity = new Vector2(moveInput.x * moveSpeed, rb.linearVelocity.y); // Handle flipping if (moveInput.x > 0 && !facingRight) { Flip(); } else if (moveInput.x < 0 && facingRight) { Flip(); } } void Flip() { facingRight = !facingRight; Vector3 scale = transform.localScale; scale.x *= -1; transform.localScale = scale; }
A la fin de cette section, votre scène devrait ressembler a la capture suivante:

Tester les mouvements
La scene de jeux et les mouvements WASD
Saut avec le Space bar