PackedVector3Array
Un tableau compacté de Vector3s.
Description
Un tableau spécialement conçu pour contenir des Vector3. Compacte les données de manière serrée, il sauve de la mémoire pour les grandes tailles de tableaux.
Différences entre les tableaux compactés, les tableaux typés et les tableaux non typés : Les tableaux compactés sont généralement plus rapides pour itérer et modifier par rapport à un tableau typé du même type (par exemple PackedVector3Array contre Array[Vector3]). De plus, les tableaux compactés consomment moins de mémoire. À l'inverse, les tableaux compactés sont moins flexibles car ils ne proposent pas autant de méthodes de commodité comme Array.map(). Les tableaux typés sont à leur tour plus rapides pour itérer dessus et modifier que les tableaux non typés.
Note : Les tableaux compactés sont toujours passés par référence. Pour obtenir une copie d'un tableau qui peut être modifié indépendamment du tableau original, utilisez duplicate(). Ceci n'est pas le cas pour les propriétés et les méthodes intégrées. Le tableau compacté renvoyé de ceux-ci est une copie, et le changer n'affectera pas la valeur originale. Pour mettre à jour une propriété intégrée, vous devez modifier le tableau renvoyé, puis l'affecter à nouveau à la propriété.
Note
Il y a des différences notables dans l'utilisation de cette API en C#. Voir Différences de l'API C# par rapport à GDScript pour plus d'informations.
Constructeurs
PackedVector3Array(from: Array) |
Méthodes
void |
append_array(array: PackedVector3Array) |
void |
clear() |
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Opérateurs
operator !=(right: PackedVector3Array) |
|
operator *(right: Transform3D) |
|
operator +(right: PackedVector3Array) |
|
operator ==(right: PackedVector3Array) |
|
operator [](index: int) |
Descriptions des constructeurs
PackedVector3Array PackedVector3Array() 🔗
Construit un PackedVector3Array vide.
PackedVector3Array PackedVector3Array(from: PackedVector3Array)
Construit un PackedVector3Array comme une copie du PackedVector3Array donné.
PackedVector3Array PackedVector3Array(from: Array)
Construit un nouveau PackedVector3Array. Optionnellement, vous pouvez passer un tableau Array générique qui sera converti.
Note : Lors de l'initialisation d'un PackedVector3Array avec des éléments, il doit être initialisé avec un Array de valeurs de Vector3 :
var tableau = PackedVector3Array([Vector3(12, 34, 56), Vector3(78, 90, 12)])
Descriptions des méthodes
Ajoute un élément à la fin du tableau (c'est un raccourci vers push_back()).
void append_array(array: PackedVector3Array) 🔗
Ajoute un PackedVector3Array à la fin de ce tableau.
int bsearch(value: Vector3, before: bool = true) 🔗
Cherche l'index d'une valeur existante (ou l'index d'insertion qui maintient l'ordre de tri, si la valeur n'est pas encore présente dans le tableau) en utilisant la recherche binaire. Optionnellement, un spécificateur before peut être passé. Si false, l'index renvoyé vient après toutes les entrées existantes de la valeur dans le tableau.
Note : Appeler bsearch() sur un tableau non trié résulte en un comportement inattendu.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
void clear() 🔗
Efface le contenu du tableau. C'est équivalent à resize() avec une taille de 0.
int count(value: Vector3) const 🔗
Renvoie le nombre de fois qu'un élément apparaît dans le tableau.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
PackedVector3Array duplicate() 🔗
Crée une copie du tableau, et le renvoie.
Retire la première occurrence d'une valeur du tableau et renvoie true. Si la valeur n'existe pas dans le tableau, rien ne se passe et false est renvoyé. Pour supprimer un élément par index, utilisez remove_at() à la place.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
Attribue la valeur donnée à tous les éléments du tableau. Cela peut généralement être utilisé avec resize() pour créer un tableau avec une taille donnée et des éléments initialisés.
int find(value: Vector3, from: int = 0) const 🔗
Cherche le tableau pour une valeur et renvoie son index ou -1 si elle n'est pas trouvé. Optionnellement, l'index de recherche initial peut être passé.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
Vector3 get(index: int) const 🔗
Renvoie le Vector3 à l'index donné dans le tableau. Si index est hors des limites ou négatif, cette méthode échoue et renvoie Vector3(0, 0, 0).
Cette méthode est similaire (mais non identique) à l'opérateur []. Plus particulièrement, lorsque cette méthode échoue, elle ne met pas en pause l'exécution du projet s'il est exécuté depuis l'éditeur.
bool has(value: Vector3) const 🔗
Renvoie true si le tableau contient la valeur value.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
int insert(at_index: int, value: Vector3) 🔗
Insérer un nouvel élément à une position donnée dans le tableau. La position doit être valide, ou à la fin du tableau (idx == size()).
Renvoie true si le tableau est vide.
bool push_back(value: Vector3) 🔗
Insère un Vector3 à la fin.
Retire l'élément du tableau à l'index donné.
Définit la taille du tableau. Si le tableau est agrandi, réserve des éléments à la fin du tableau. Si le tableau est rétrécit, tronque le tableau à la nouvelle taille. Appeler resize() une fois et attribuer les nouvelles valeurs est plus rapide que l'ajout de nouveaux éléments un par un.
Renvoie @GlobalScope.OK sur le succès, ou une des constantes Error suivantes si cette méthode échoue : @GlobalScope.ERR_INVALID_PARAMETER si la taille est négative, ou @GlobalScope.ERR_OUT_OF_MEMORY si les allocations échouent. Utilisez size() pour trouver la taille réelle du tableau après le redimensionnement.
void reverse() 🔗
Inverse l'ordre des éléments du tableau.
int rfind(value: Vector3, from: int = -1) const 🔗
Cherche le tableau en sens inverse. Optionnellement, un index de recherche initial peut être passé. Si négatif, l'indice initial est considéré comme relatif par rapport à la fin du tableau.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
void set(index: int, value: Vector3) 🔗
Change la Vector3 à la position donnée.
Renvoie le nombre d'éléments dans le tableau.
PackedVector3Array slice(begin: int, end: int = 2147483647) const 🔗
Renvoie la tranche du PackedVector3Array, de begin (inclusive) à end (exclusive), en tant que nouveau PackedVector3Array.
La valeur absolue de begin et end sera bornée à la taille du tableau, de sorte que la valeur par défaut pour end le fait trancher à la taille du tableau par défaut (c.a.d. arr.slice(1) est un raccourci pour arr.slice(1, arr.size())).
Si begin ou end sont négatifs, ils seront par rapport à la fin du tableau (c.a.d. arr.slice(0, -2) est un raccourci pour arr.slice(0, arr.size() - 2)).
void sort() 🔗
Trie les éléments du tableau dans l'ordre ascendant.
Note : Les vecteurs avec des éléments @GDScript.NAN ne se comportent pas comme les autres vecteurs. Par conséquent, les résultats de cette méthode peuvent ne pas être corrects si des NaNs sont inclus.
PackedByteArray to_byte_array() const 🔗
Renvoie un PackedByteArray avec chaque vecteur encodé en octets.
Descriptions des opérateurs
bool operator !=(right: PackedVector3Array) 🔗
Renvoie true si le contenu des tableaux diffère.
PackedVector3Array operator *(right: Transform3D) 🔗
Renvoie un nouveau PackedVector3Array avec tous les vecteurs de ce tableau transformés (multipliés) de manière inverse par la matrice de transformation Transform3D donnée, avec la supposition que la base de la transformation est orthonormée (c.a.d. une rotation/réflexion est OK, une échelle/un cisaillement ne l'est pas).
array * transform est équivalent à transform.inverse() * array. Voir Transform3D.inverse().
Pour transformer par l'inverse d'une transformation affine (par ex. avec une mise à l'échelle), transform.affine_inverse() * array peut être utilisé à la place. Voir Transform3D.affine_inverse().
PackedVector3Array operator +(right: PackedVector3Array) 🔗
Renvoie un nouveau PackedVector3Array avec le contenu de right ajouté à la fin de ce tableau. Pour de meilleures performances, envisagez d'utiliser append_array() à la place.
bool operator ==(right: PackedVector3Array) 🔗
Renvoie true si le contenu des deux tableaux est le même, c'est-à-dire qu'ils ont tous leurs Vector3 égaux aux indices correspondants.
Vector3 operator [](index: int) 🔗
Renvoie le Vector3 à la position index. Les indices négatifs peuvent être utilisés pour accéder aux éléments à partir de la fin. L'utilisation d'un index hors des limites du tableau entraînera une erreur.