Les Namespace (ou Espaces de noms en français) permettent d’organiser les différents éléments d’un programme en C#.
On peut comparer un namespace à un dossier dans ton ordinateur :
Tu ne peux pas avoir deux fichiers avec le même nom dans un même dossier.
De même, en programmation, on ne peut pas créer deux fonctions, classes, etc., avec le même nom dans un
même espace.
Les namespaces permettent donc d’éviter ces conflits en les séparant dans des « dossiers » logiques.
Exemple classique d’un jeu vidéo avec plusieurs namespaces :
| Namespace | Fontion principale |
| Engine | Gestion du moteur de jeu |
| Enemy | Gestion des ennemis |
| SFX | Gestion des effets spéciaux |
Lors de la conception de ton programme, crée tes propres namespaces pour rendre le code plus lisible et éviter les conflits futurs.
Assez parler regardons ce code :
namespace NomEspace.Projet1
{
class MaClasse
{
}
}
namespace NomEspace.Projet1
{
class MaClasse1
{
}
}
Ici, deux classes MaClasse et MaClasse1 sont définies dans le même namespace NomEspace.Projet1 Ces classes peuvent être utilisées dans d’autres namespaces.
namespace NomEspace.Projet1
{
public class MaClasse
{
static void Main()
{
NomEspace2.MaClasse2.SayHello();
}
}
// nouveau NameSpace
namespace NomEspace2
{
public class MaClasse2
{
public static void SayHello()
{
Console.WriteLine("Hello");
}
}
}
}
// Output: Hello
La méthode SayHello() est appelée depuis le namespace imbriqué NomEspace2.
Résultat dans la console : Hello.
Le but ici est d’utiliser des namespaces pour structurer tes scripts Unity.
Script Tutoriel1 :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TutorielNamespace
{
public class Tutoriel1 : MonoBehaviour
{
public bool myFunction()
{
Debug.LogWarning("Ma fonction est efficace");
return true;
}
}
}
Ici, Tutoriel1 est dans le namespace TutorielNamespace.
La fonction myFunction() affiche un warning dans la console Unity.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// On garde bien le même Namespace que sur le premier fichier
namespace TutorielNamespace
{
public class Tutoriel2 : MonoBehaviour
{
// Fonction start d'Unity
void Start()
{
//En premier lieu on déclare dans un nouveau objet la classe principale
Tutoriel1 myObject = new Tutoriel1();
// On peut donc maintenant appeler la fonction
myObject.myFunction();
}
}
}
Tutoriel2 est dans le même namespace TutorielNamespace.
Dans la méthode Start(), on crée une instance de Tutoriel1 et on appelle
myFunction().
Le warning s'affichera dans la console Unity.
Les namespaces permettent d’organiser et de modulariser ton code pour éviter les conflits de
noms.
Avec Unity, cela facilite la gestion des scripts, surtout dans des projets complexes.
Toujours définir et utiliser un namespace cohérent dans tes scripts.