Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

PackedVector4Array

Un tableau compacté de Vector4s.

Description

An array specifically designed to hold Vector4. Packs data tightly, so it saves memory for large array sizes.

Differences between packed arrays, typed arrays, and untyped arrays: Packed arrays are generally faster to iterate on and modify compared to a typed array of the same type (e.g. PackedVector4Array versus Array[Vector4]). Also, packed arrays consume less memory. As a downside, packed arrays are less flexible as they don't offer as many convenience methods such as Array.map(). Typed arrays are in turn faster to iterate on and modify than untyped arrays.

Note: Packed arrays are always passed by reference. To get a copy of an array that can be modified independently of the original array, use duplicate(). This is not the case for built-in properties and methods. In these cases the returned packed array is a copy, and changing it will not affect the original value. To update a built-in property of this type, modify the returned array and then assign it to the property again.

Note: In a boolean context, a packed array will evaluate to false if it's empty. Otherwise, a packed array will always evaluate to true.

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

PackedVector4Array

PackedVector4Array()

PackedVector4Array

PackedVector4Array(from: PackedVector4Array)

PackedVector4Array

PackedVector4Array(from: Array)

Méthodes

bool

append(value: Vector4)

void

append_array(array: PackedVector4Array)

int

bsearch(value: Vector4, before: bool = true) const

void

clear()

int

count(value: Vector4) const

PackedVector4Array

duplicate() const

bool

erase(value: Vector4)

void

fill(value: Vector4)

int

find(value: Vector4, from: int = 0) const

Vector4

get(index: int) const

bool

has(value: Vector4) const

int

insert(at_index: int, value: Vector4)

bool

is_empty() const

bool

push_back(value: Vector4)

void

remove_at(index: int)

int

resize(new_size: int)

void

reverse()

int

rfind(value: Vector4, from: int = -1) const

void

set(index: int, value: Vector4)

int

size() const

PackedVector4Array

slice(begin: int, end: int = 2147483647) const

void

sort()

PackedByteArray

to_byte_array() const

Opérateurs

bool

operator !=(right: PackedVector4Array)

PackedVector4Array

operator +(right: PackedVector4Array)

bool

operator ==(right: PackedVector4Array)

Vector4

operator [](index: int)


Descriptions des constructeurs

PackedVector4Array PackedVector4Array() 🔗

Construit un PackedVector4Array vide.


PackedVector4Array PackedVector4Array(from: PackedVector4Array)

Construit un PackedVector4Array comme une copie du PackedVector4Array donné.


PackedVector4Array PackedVector4Array(from: Array)

Construit un nouveau PackedVector4Array. Optionnellement, vous pouvez passer un tableau Array générique qui sera converti.

Note : Lors de l'initialisation d'un PackedVector4Array avec des éléments, il doit être initialisé avec un Array de valeurs de Vector4 :

var tableau = PackedVector4Array([Vector4(12, 34, 56, 78), Vector4(90, 12, 34, 56)])

Descriptions des méthodes

bool append(value: Vector4) 🔗

Ajoute un élément à la fin du tableau (c'est un raccourci vers push_back()).


void append_array(array: PackedVector4Array) 🔗

Ajoute un PackedVector4Array à la fin de ce tableau.


int bsearch(value: Vector4, before: bool = true) const 🔗

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: Vector4) 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.


PackedVector4Array duplicate() const 🔗

Crée une copie du tableau, et le renvoie.


bool erase(value: Vector4) 🔗

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.


void fill(value: Vector4) 🔗

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: Vector4, 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.


Vector4 get(index: int) const 🔗

Returns the Vector4 at the given index in the array. If index is out-of-bounds or negative, this method fails and returns Vector4(0, 0, 0, 0).

This method is similar (but not identical) to the [] operator. Most notably, when this method fails, it doesn't pause project execution if run from the editor.


bool has(value: Vector4) 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: Vector4) 🔗

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()).


bool is_empty() const 🔗

Renvoie true si le tableau est vide.


bool push_back(value: Vector4) 🔗

Insère un Vector4 à la fin.


void remove_at(index: int) 🔗

Retire l'élément du tableau à l'index donné.


int resize(new_size: int) 🔗

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: Vector4, 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: Vector4) 🔗

Change la Vector4 à l'index donné.


int size() const 🔗

Renvoie le nombre d'éléments dans le tableau.


PackedVector4Array slice(begin: int, end: int = 2147483647) const 🔗

Renvoie la tranche du PackedVector4Array, de begin (inclusive) à end (exclusive), en tant que nouveau PackedVector4Array.

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: PackedVector4Array) 🔗

Renvoie true si le contenu des tableaux diffère.


PackedVector4Array operator +(right: PackedVector4Array) 🔗

Renvoie un nouveau PackedVector4Array 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: PackedVector4Array) 🔗

Renvoie true si le contenu des deux tableaux est le même, c'est-à-dire qu'ils ont tous leurs Vector4 égaux aux indices correspondants.


Vector4 operator [](index: int) 🔗

Renvoie le Vector4 à 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.