DataModelMesh
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il DataModelMesh è una classe抽a da cui le classi di mesh discendono.
Le classi mesh sono oggetti che, quando parented a Class.BasePart|BaseParts , alterano l'aspetto della parte in quello di una Mesh, magliapredefinita. Nota, essi solo alterano l'aspetto della parte e non le frontiere fisiche/collisioni della parte. Gli sviluppatori che cercano di applicare una mesh a una parte che cambia la collisione della parte dovrebbe usare Class.MeshPart|MeshParts .
Nota che le classi MeshPart e CharacterMesh non discendono da DataModelMesh.
Sommario
Proprietà
L'Offset di una mesh determina la posizione relativa dalla Class.BasePart.Position di un BasePart.Position che la mesh sarà visualizzata.
La scala di una mesh determina la dimensione della mesh rispetto alle sue dimensioni originali.
Cambia il colore di una Strutturadi Mesh, maglia, usata con FileMesh.TextureId .
Metodi
Proprietà
Offset
L'Offset di una mesh determina la distanza dal BasePart.Position di un BasePart che la mesh sarà visualizzata.
Come utilizzare l'Dislocamentodi mesh
La proprietà Offset cambia la posizione relativa in cui viene visualizzato il mesh. Ad esempio, un offset di 0, 5, 0 farà in modo che il mesh venga visualizzato 5 studs sopra la posizione del BasePart .
La posizione della BasePart rimane inalterata, il che significa che la scatola di collisione fisica della parte rimarrà nello stesso luogo. Questo è mostrato nell'immagine sottostante in cui l'outline verde (un SelectionBox ) mostra gli estremi della BasePart .
Altri usi per l'Dislocamentodi mesh
Ci sono un certo numero di utilizzi interessanti per la Proprietàmesh offset.
- L'Offset e DataModelMesh.Scale possono essere animati utilizzando TweenService relativamente inexpensively poiché il motore non deve eseguire alcun calcolo fisico / collisioni poiché la BasePart non viene spostata.
- Cambiare il rapporto tra la mesh e i suoi estremi di collisione (determinati dalla BasePart )
Campioni di codice
local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()
Scale
La scala di una mesh determina la dimensione della mesh rispetto alle sue dimensioni originali.
Come usare lo Ridimensionaremesh
La proprietà scale funziona in modo leggermente diverso a seconda del tipo di mesh utilizzato. Nota che la dimensione della BasePart rimane inalterata, il che significa che la collisione fisica della parte rimarrà la stessa.
- SpecialMesh oggetti con SpecialMesh.FileType impostati su "FileMesh" in base alle dimensioni originali della mesh quando è stata caricata su Roblox
- BlockMesh oggetti o SpecialMesh oggetti con SpecialMesh.FileType impostato su 'Brick', 'Wedge' o 'Sphere' in modo uniforme rispetto alla 0> Class.BasePart.Size0> di loro parent
- CylinderMesh oggetti o SpecialMesh oggetti con SpecialMesh.FileType impostato su 0> Class.BasePart.Size0> di loro parent. In modo uniforme per l'altezza dei cilindri e mantenendo una proporzione 1:1 per la lunghezza e la larghezza del cilindro
- SpecialMesh oggetti con SpecialMesh.FileType impostato su "Head" attualmente scala in modo non standard. Gli sviluppatori non dovrebbero basarsi su questo come i loro piani per cambiare questo comportamento
- SpecialMesh oggetti con SpecialMesh.FileType impostato su 'Torso' scala in modo non standard. Gli sviluppatori non dovrebbero farne affidamento come i loro piani per deprecare questo inserisci / scrividi mesh.
Dimostrazione di scala mesh
Il comportamento sopra può essere visto nelle seguenti immagini di dimostrazione.
Scalatura lineare rispetto alle dimensioni della parte per i meshi 'Brick', 'Wedge' e 'Sphere'.
Scalatura lineare rispetto alla mesh originale per i meshi 'FileMesh'
Scaling non uniforme limitato per le maglie 'Cylinder'
Altri usi per la Ridimensionaredi mesh
Ci sono un certo numero di utilizzi interessanti per la Proprietàmesh offset.
- DataModelMesh.Offset e Scale possono essere animati utilizzando TweenService relativamente inexpensively poiché il motore non deve fare alcun calcolo fisico/collisioni poiché la BasePart non è cambiata.
- Cambiare il rapporto tra la mesh e i suoi estremi di collisione (determinati dalla BasePart )
Campioni di codice
local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()
VertexColor
Colore del verso determinano il cambiamento di colore della Texture di un FileMesh . Nota che questa proprietà è un 0> Datatype.Vector
Anche se questa proprietà consente la modifica di base di una Struttura, cambiare una texture intera fornisce più controllo. Vedi MeshPart per ulteriori dettagli.