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.
Checking the stable version of the documentation...
PackedVector3Array
Un array compatto di Vector3.
Descrizione
An array specifically designed to hold Vector3. 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. PackedVector3Array versus Array[Vector3]). 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.
Nota
Ci sono differenze sostanziali quando si usa questa API con C#. Vedi Differenze dell'API C# rispetto a GDScript per maggiori informazioni.
Costruttori
PackedVector3Array(from: Array) |
Metodi
void |
append_array(array: PackedVector3Array) |
void |
clear() |
duplicate() const |
|
void |
|
is_empty() const |
|
void |
|
void |
reverse() |
void |
|
size() const |
|
void |
sort() |
to_byte_array() const |
Operatori
operator !=(right: PackedVector3Array) |
|
operator *(right: Transform3D) |
|
operator +(right: PackedVector3Array) |
|
operator ==(right: PackedVector3Array) |
|
operator [](index: int) |
Descrizioni dei costruttori
PackedVector3Array PackedVector3Array() 🔗
Costruisce un PackedVector3Array vuoto.
PackedVector3Array PackedVector3Array(from: PackedVector3Array)
Costruisce un PackedVector3Array come copia del PackedVector3Array specificato.
PackedVector3Array PackedVector3Array(from: Array)
Costruisce un nuovo PackedVector3Array. È possibile passare un Array generico che sarà convertito.
Nota: Quando si inizializza un PackedVector3Array con elementi, deve essere inizializzato con un Array di valori Vector3:
var array = PackedVector3Array([Vector3(12, 34, 56), Vector3(78, 90, 12)])
Descrizioni dei metodi
Aggiunge un elemento alla fine dell'array (pseudonimo di push_back()).
void append_array(array: PackedVector3Array) 🔗
Accoda un PackedVector3Array alla fine di questo array.
int bsearch(value: Vector3, before: bool = true) const 🔗
Trova l'indice di un valore esistente (o l'indice di inserimento che mantiene l'ordine di ordinamento, se il valore non è ancora presente nell'array) utilizzando la ricerca binaria. Facoltativamente, è possibile passare uno specificatore before. Se false, l'indice restituito viene dopo tutte le voci esistenti del valore nell'array.
Nota: Chiamare bsearch() su un array non ordinato provoca un comportamento imprevisto.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
void clear() 🔗
Cancella l'array. Ciò equivale a usare resize() con una dimensione di 0.
int count(value: Vector3) const 🔗
Restituisce il numero di volte in cui un elemento è presente nell'array.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
PackedVector3Array duplicate() const 🔗
Crea una copia dell'array, e la restituisce.
Rimuove la prima occorrenza di un valore dall'array e restituisce true. Se il valore non esiste nell'array, nulla accade e viene restituito false. Per rimuovere un elemento in base all'indice, utilizzare invece remove_at().
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
Assegna il valore specificato a tutti gli elementi nell'array. Questo può solitamente essere usato insieme a resize() per creare un array con una determinata dimensione ed elementi inizializzati.
int find(value: Vector3, from: int = 0) const 🔗
Cerca un valore nell'array e restituisce il suo indice o -1 se non lo trova. Facoltativamente, può essere passato l'indice iniziale di ricerca.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
Vector3 get(index: int) const 🔗
Returns the Vector3 at the given index in the array. If index is out-of-bounds or negative, this method fails and returns Vector3(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: Vector3) const 🔗
Restituisce true se l'array contiene value.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
int insert(at_index: int, value: Vector3) 🔗
Inserisce un nuovo elemento in una determinata posizione nell'array. La posizione deve essere valida o alla fine dell'array (idx == size()).
Restituisce true se l'array è vuoto.
bool push_back(value: Vector3) 🔗
Inserisce un Vector3 alla fine.
Rimuove un elemento dall'array in base all'indice.
Imposta la dimensione dell'array. Se l'array viene ingrandito, riserva gli elementi alla fine dell'array. Se l'array viene rimpicciolito, tronca l'array alla nuova dimensione. Chiamare resize() una sola volta e assegnare i nuovi valori è più veloce che aggiungere nuovi elementi uno alla volta.
Restituisce @GlobalScope.OK in caso di successo, oppure una delle seguenti costanti di Error se questo metodo fallisce: @GlobalScope.ERR_INVALID_PARAMETER se la dimensione è negativa, oppure @GlobalScope.ERR_OUT_OF_MEMORY se le allocazioni falliscono. Usare size() per trovare la dimensione effettiva dell'array dopo il ridimensionamento.
void reverse() 🔗
Inverte l'ordine degli elementi nell'array.
int rfind(value: Vector3, from: int = -1) const 🔗
Cerca nell'array in ordine inverso. Facoltativamente, può essere passato un indice iniziale di ricerca. Se negativo, l'indice iniziale è considerato relativo alla fine dell'array.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
void set(index: int, value: Vector3) 🔗
Modifica il Vector3 all'indice specificato.
Restituisce il numero di elementi nell'array.
PackedVector3Array slice(begin: int, end: int = 2147483647) const 🔗
Restituisce la sezione del PackedVector3Array, da begin (incluso) a end (escluso), sotto forma di un nuovo PackedVector3Array.
Il valore assoluto di begin e end sarà limitato alla dimensione dell'array, quindi il valore predefinito per end lo suddivide alla dimensione dell'array per impostazione predefinita (ad esempio, arr.slice(1) è un'abbreviazione per arr.slice(1, arr.size())).
Se begin o end sono negativi, saranno relativi alla fine dell'array (ad esempio, arr.slice(0, -2) è un'abbreviazione per arr.slice(0, arr.size() - 2)).
void sort() 🔗
Ordina gli elementi dell'array in ordine crescente.
Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Pertanto, i risultati di questo metodo potrebbero non essere accurati se valori NaN sono inclusi.
PackedByteArray to_byte_array() const 🔗
Restituisce un PackedByteArray con ogni vettore codificato come byte.
Descrizioni degli operatori
bool operator !=(right: PackedVector3Array) 🔗
Restituisce true se i contenuti degli array differiscono.
PackedVector3Array operator *(right: Transform3D) 🔗
Restituisce un nuovo PackedVector3Array con tutti i vettori in questo array trasformati inversamente (moltiplicati) per la matrice di trasformazione Transform3D specificata, presupponendo che la base di trasformazione sia ortonormale (ovvero rotazione/riflessione vanno bene, ma scala/distorsione no).
array * transform è equivalente a transform.inverse() * array. Vedi Transform3D.inverse().
Per la trasformazione tramite l'inverso di una trasformazione affine (ad esempio con scala), è possibile utilizzare transform.affine_inverse() * array. Vedi Transform3D.affine_inverse().
PackedVector3Array operator +(right: PackedVector3Array) 🔗
Restituisce un nuovo PackedVector3Array con il contenuto di right accodato alla fine di questo array. Per prestazioni migliori, considera invece di usare append_array().
bool operator ==(right: PackedVector3Array) 🔗
Restituisce true se il contenuto di entrambi gli array è lo stesso, ovvero hanno tutti i Vector3 uguali agli indici corrispondenti.
Vector3 operator [](index: int) 🔗
Restituisce il Vector3 all'indice index. Gli indici negativi possono essere utilizzati per accedere agli elementi partendo dalla fine. Utilizzare un indice fuori dai limiti dell'array genererà un errore.