Una Texture è un'immagine che puoi posizionare su qualsiasi faccia di un parte o unione che si ripete sia orizzontalmente che verticalmente sulla dimensione della superficie. Al contrario, una Decal è un'immagine che si estende per adattarsi all'area della superficie di una parte o unione. Dopo aver aggiunto un oggetto Texture o Decal a una parte o unione, puoi:
Cambiare la proprietà Color3 della texture o decalcomania per impostare una sfumatura di colore utilizzando i codici colore RGB.
Cambiare la proprietà Transparency della texture o decalcomania a un valore compreso tra il predefinito di 0 (completamente visibile) e 1 (invisibile).




Creare texture o decalcomanie
Per creare una texture o una decalcomania, devi aggiungere un oggetto Texture o Decal a una parte o unione. Puoi importare immagini per texture e decalcomanie in Studio per l'uso tra i giochi e distribuirle nel Creator Store. Una volta importata l'immagine, Studio le assegna un ID asset unico.
Per aggiungere una texture o una decalcomania a una parte o unione:
Nella finestra Proprietà, vai alla proprietà Face e scegli una faccia (Top, Bottom, Front, Back, Left, o Right).
- OPZIONALEPer aiutarti a scegliere la faccia corretta, fai clic con il pulsante destro del mouse sulla parte/unione e seleziona Mostra indicatore di orientamento. Questo visualizzerà un cerchio 🅕, una linea blu attaccata alla faccia frontale dell'oggetto e una freccia verde che punta nella direzione della faccia superiore dell'oggetto.

Seleziona la proprietà ColorMapContent e applica un'immagine attraverso uno dei seguenti metodi:
- Seleziona qualsiasi texture o decalcomania che hai caricato in precedenza.
- Inserisci un ID asset nel campo.
- OPZIONALEImposta la proprietà Transparency a un valore compreso tra il predefinito di 0 (completamente visibile) e 1 (invisibile).

Transparency: 0 
Transparency: 0.6
Personalizzare le texture
A differenza delle decalcomanie, le texture offrono ulteriori funzioni per scalare, spostare e animare l'immagine sorgente.
Ridimensionare le texture
La dimensione della parte non influisce sulla texture. Invece, il ridimensionamento di una parte aumenta o diminuisce solo il numero di volte che la texture si ripete.
Le proprietà StudsPerTileU e StudsPerTileV determinano la dimensione di ciascun "tile" in studs. StudsPerTileU determina la dimensione orizzontale della texture mentre StudsPerTileV determina la dimensione verticale della texture.

Spostare le texture
Se desideri un maggior controllo sulla posizione di una texture, sposta la texture regolando le proprietà OffsetStudsU (orizzontale) e OffsetStudsV (verticale). Questo è anche utile per l'animazione.

Animare le texture
Utilizzando TweenService, puoi tweenare le proprietà della texture come OffsetStudsU e StudsPerTileV per ottenere superfici animate. Ad esempio, se applichi due texture di nebbia a un contenitore e le animi con il seguente script, puoi ottenere l'aspetto di una nebbia in movimento strati.
local TweenService = game:GetService("TweenService")local texture1 = script.Parent.Texture1local texture2 = script.Parent.Texture2local tweenInfo1 = TweenInfo.new(8, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1)local tween1 = TweenService:Create(texture1, tweenInfo1, {OffsetStudsV=50})local tweenInfo2 = TweenInfo.new(7, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)local tween2 = TweenService:Create(texture2, tweenInfo2, {OffsetStudsU=50, StudsPerTileU=55, StudsPerTileV=45})tween1:Play()tween2:Play()
Streaming delle texture
Il streaming delle texture carica dinamicamente le texture in base alla distanza e alla visuale della telecamera, consentendo di utilizzare le texture più liberamente senza preoccuparsi dello scaling tra i dispositivi. Il motore carica per primo texture di qualità di base, in ordine di importanza, e poi aumenta progressivamente la qualità di ciascuna texture fino alla memoria disponibile sul dispositivo. Lo streaming delle texture è abilitato automaticamente, quindi non devi intraprendere alcuna azione per beneficiarne.

Vantaggi
- Tempi di caricamento percepiti più rapidi e download più piccoli: Le texture appaiono quasi immediatamente a una qualità base e il motore scarica solo i dettagli necessari, comprimendoli sia in transito che nella cache del disco locale.
- Qualità superiore dove conta: Il motore stima continuamente quanto sia importante ciascun oggetto, ad esempio in base a quanto spazio occupa sullo schermo, e utilizza il budget di memoria per quelle texture in modo che gli oggetti più prominenti ricevano il massimo dettaglio.
- Meno arresti anomali per esaurimento della memoria: Poiché il motore rimane entro un budget di memoria e può abbassare la qualità delle texture quando la memoria è bassa, i giocatori hanno molte meno probabilità di arrestarsi a causa di picchi nella memoria delle texture.
Lo streaming delle texture funziona con MeshPart (skinned e unskinned), SurfaceAppearance, Texture, Decal, MaterialVariant, Beam, ParticleEmitter e i materiali di base applicati a istanze di PartOperation e BasePart.
Migliori pratiche
- Favorire texture uniche e individuali rispetto ad atlas di texture a meno che l'atlas non venga applicato a parti raggruppabili; richiedere una risoluzione alta per una texture in un atlas fa sì che venga trasmesso l'intero atlas a quella risoluzione.
- Utilizzare una densità texel quasi uniforme nelle tue mesh UV-mappate in modo che il motore possa selezionare la migliore risoluzione per ciascuna texture.
- Continuare a gestire con attenzione la memoria delle texture per i tipi di istanza per i quali lo streaming delle texture non è ancora supportato.


