DataModelMesh
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il DataModelMesh è una classe astratta da cui discendono le classi mesh.
Le classi mesh sono oggetti che, quando genitori a BaseParts alterano l'aspetto della parte a quello di una Mesh, magliapredefinita.Nota, alterano solo l'aspetto della parte e non i confini fisici/di collisione della parte.Gli sviluppatori che vogliono applicare una mesh a una parte che altera la collisione della parte dovrebbero usare MeshParts .
Nota che le classi MeshPart e CharacterMesh non discendono da DataModelMesh.
Sommario
Proprietà
Lo spostamento di una mesh determina la posizione relativa da BasePart.Position di un BasePart che la mesh verrà visualizzata.
La scala di una mesh determina le dimensioni della mesh rispetto alle sue dimensioni originali.
Cambia il tono della Strutturadi una Mesh, maglia, utilizzato con FileMesh.TextureId .
Metodi
Proprietà
Offset
Lo spostamento di una mesh determina la distanza dal BasePart.Position di un BasePart che la mesh verrà visualizzata.
Come utilizzare lo Dislocamentomesh
La proprietà Offset cambia la posizione relativa in cui verrà resa la mesh.Ad esempio, uno spostamento di 0, 5, 0 farà in modo che la mesh venga visualizzata a 5 studs sopra la posizione del BasePart .
La posizione del BasePart rimane invariata, il che significa che la scatola di collisione fisica della parte rimarrà nello stesso luogo.Questo è dimostrato nell'immagine seguente in cui l'outline verde (un SelectionBox ) mostra gli estremi del BasePart .
Altri usi per lo Dislocamentodella mesh
Esistono una serie di interessanti utilizzi per la Proprietàdi spostamento mesh.
- Lo spostamento e DataModelMesh.Scale può essere animato utilizzando TweenService relativamente a buon mercato poiché il motore non ha bisogno di effettuare alcun calcolo fisico/collisionale poiché il BasePart non viene spostato.
- Cambiare il rapporto tra la mesh e i suoi estremi di collisione (determinati dal BasePart )
Campioni di codice
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.
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 le dimensioni della mesh rispetto alle sue dimensioni originali.
Come utilizzare la Ridimensionaremesh
La proprietà di scala funziona leggermente in modo diverso a seconda del tipo di mesh utilizzato.Nota che la dimensione del BasePart rimane invariata, il che significa che la scatola di collisione fisica della parte rimarrà la stessa.
- SpecialMesh oggetti con SpecialMesh.FileType impostati a scala 'FileMesh' rispetto alle dimensioni originali della mesh quando è stato caricato su Roblox
- BlockMesh oggetti o SpecialMesh oggetti con SpecialMesh.FileType impostati su scala 'Mattone', 'Cuneo' o 'Sfera' uniformemente rispetto al BasePart.Size del loro parent
- CylinderMesh oggetti o SpecialMesh oggetti con SpecialMesh.FileType impostato su scala 'Cilindro' rispetto al BasePart.Size del loro parent.Uniformemente per l'asse di altezza dei cilindri e mantenendo una proporzione 1:1 per la lunghezza e la larghezza del cilindro, usando il valore più basso.
- SpecialMesh oggetti con SpecialMesh.FileType impostati a 'Testa' attualmente si sviluppano in modo non standard.Gli sviluppatori non dovrebbero affidarsi a questo poiché ci sono progetti di cambiare questo comportamento.
- SpecialMesh oggetti con SpecialMesh.FileType impostati a scala 'Torso' in modo non standard.Gli sviluppatori non dovrebbero affidarsi a questo poiché ci sono progetti di deprecazione di questo inserisci / scrividi mesh.
Dimostrazione della scala mesh
Il comportamento sopra descritto può essere visto nelle seguenti immagini di dimostrazione.
Scaling lineare rispetto alla dimensione della parte per le maglie 'Mattone', 'Cuneo' e 'Sfera'.
Scaling lineare rispetto alla mesh originale caricata per le maglie 'FileMesh'
Scalamento non uniforme vincolato per le maglie 'Cilindro'
Altri usi per la Ridimensionaremesh
Esistono una serie di interessanti utilizzi per la Proprietàdi spostamento mesh.
- DataModelMesh.Offset e Scale possono essere animati utilizzando TweenService relativamente a buon mercato poiché il motore non deve eseguire alcun calcolo fisico/collisionale poiché il BasePart non viene modificato.
- Cambiare il rapporto tra la mesh e i suoi estremi di collisione (determinati dal BasePart )
Campioni di codice
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.
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
VertexColor determina il cambio di tono del Texture di un FileMesh .Nota che questa proprietà è una Vector3 piuttosto che una Color3 ; per convertire, usa le proprietà Color3.R, Color3.G e Color3.B.
Sebbene questa proprietà consenta la modifica di base di una Struttura, cambiare completamente una texture fornisce più controllo. Vedi MeshPart per maggiori dettagli.