En général non : en C# pur, un objet classique = une classe.
Dans Unity, un objet est un assemblage de composants, chaque composant est une classe. Quand tu écris un script Monobehaviour, et que tu l'attaches à un objet, tu as créé un composant.
Une classe n'a pas soit des attributs, soit des méthodes : elle a des attributs ou des méthodes, ou étant inclusif (et / ou).
jmhoubre a écrit :Une classe possède des attributs qui décrivent la balle (la taille du ballon, sa couleur, son degré d'usure, etc...), et des méthodes qui permettent d'agir dessus (Inflate() pour gonfler le ballon, etc...).
Ces attribues et ses méthodes comporte plusieurs autres méthodes ? Non.
Et donc pour pouvoir changer ou modifier une certaine méthode/attribues de l'Object
Changer une méthode : on change la méthode dans le code. Exemple : on a une méthode qui additionne deux nombres, et on veut qu'elle les multiplie :
Code : Tout sélectionner
// Méthode initiale
private int Add(int a, int b)
{
return a + b;
}
// Méthode modifiée
private int Add(int a, int b)
{
return a * b;
}
Remarque 1 : ce code ne fonctionnera pas, car les 2 fonctions ont le même nom et les mêmes paramètres.
Remarque 2 : la seconde méthode n'est pas fausse, mais maladroite. On s'attend à ce qu'une méthode Add additionne des nombres. Ce n'est pas vraiment un bug, plutôt une erreur de conception.
Remarque 3 : en nommant la seconde méthode Mult, les remarques 1 et 2 n'ont plus lieu d'être.
Changer un attribut
Un attribut se change dans le code ou dans l'inspecteur.
Code : Tout sélectionner
public Class Example : MonoBehaviour
{
private int a = 3;
public int b;
private void Start ()
{
a = 5;
b = b + a;
}
}
La classe Example a une méthode (Start) et deux attributs (a et b). Elle dérive de MonoBehaviour, on peut donc l'attacher à un GameObject(par exemple un Empty).
L'attribut b est public : il apparaîtra dans l'inspecteur, dans le composant Example, aissi que les autres composants de du GameObject que tu as créé (si tu as créé un Empty, il n'y a qu'un composant Transform). Dans l'inspecteur, tu peux lui donner la valeur désirée, et la manipuler dans le code.
L'attribut a est privé. Il n'apparaît pas dans l'inspecteur, mais peut également être manipulé dans le code.
Dans Unity, attacher une classe à un GameObject revient à l'instancier.
Mais je te conseille de suivre
cette série.