SpecialMesh
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
L'oggetto SpecialMesh applica una mesh a un BasePart a seconda della ProprietàMeshType. Sono disponibili una serie di opzioni.
- Mattone - Una forma di blocco, equivalente a un BlockMesh
- FileMesh - Un utente ha caricato una mesh, equivalente a FileMesh che una texture può essere applicata utilizzando la ProprietàFileMesh.TextureId
- Testa - Una forma di testa del personaggio
- Sfera - Una forma di sfera, simile a una Part con una Part.Shape di 'Palla' ma può essere ridimensionata liberamente su tutti gli assi
- Cuneo - Una forma di cuneo, identica a un WedgePart
- Torso - Un blocco con lati inclinati, da deprecare
Nota, ogni SpecialMesh.MeshType scala in modo diverso quando si utilizza DataModelMesh.Scale, per ulteriori informazioni su questo vedi la pagina su DataModelMesh.Scale.L'oggetto SpecialMesh esporre anche la ProprietàDataModelMesh.Offset.
È importante ricordare che quando si utilizza una SpecialMesh, solo l'aspetto di una parte cambia.Il modello di collisione della parte rimane lo stesso.Ad esempio, un personaggio non sarà in grado di camminare correttamente su una mesh poiché la geometria della mesh non viene presa in Account.
SpecialeMesh vs MeshPart
Attualmente ci sono due modi per utilizzare una Mesh, magliacreata da un sviluppatore.Stanno utilizzando una SpecialMesh con il set a 'FileMesh', o usando un set.Sebbene, nel complesso, l'oggetto MeshPart abbia superato la SpecialMesh ci sono alcune differenze di cui gli sviluppatori dovrebbero essere consapevoli.
- BasePart.Material viene visualizzato correttamente sulla mesh quando si utilizza un MeshPart e non quando si utilizza una SpecialMesh
- MeshParts include la ProprietàMeshPart.CollisionFidelity , il che significa che il modello di collisione di un MeshPart può essere impostato per assomigliare alla geometria della Mesh, maglia.L'oggetto SpecialMesh, al contrario, utilizza il modello di collisione padre BaseParts
- La proprietà MeshId di un SpecialMesh può essere cambiata da un Script o LocalScript durante l'esecuzione.La proprietà MeshId di un MeshPart non può.
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()
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is 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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end
Sommario
Proprietà
Determina il tipo di mesh che verrà applicato al BasePart il SpecialMesh è genitoriale.
L'ID mesh è l'ID del contenuto della mesh che deve essere visualizzata.
L'ID della texture è l'ID del contenuto della texture che deve essere applicata alla Mesh, maglia.
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à
MeshType
La mesh a cui l'oggetto applica la mesh dipende dalla ProprietàMeshType. A disposizione un certo numero di opzioni.
- Mattone - Una forma di blocco, equivalente a un BlockMesh
- FileMesh - Un utente ha caricato una mesh, equivalente a FileMesh che una texture può essere applicata utilizzando la ProprietàFileMesh.TextureId
- Testa - Una forma di testa del personaggio
- Sfera - Una forma di sfera, simile a una Part con una Part.Shape di 'Palla' ma può essere ridimensionata liberamente su tutti gli assi
- Cuneo - Una forma di cuneo, identica a un WedgePart
- Torso - Un blocco con lati inclinati, da deprecare
Nota, ogni MeshType si ridimensionerà in modo diverso quando utilizza DataModelMesh.Scale , per ulteriori informazioni su questo vedi la pagina su DataModelMesh.Scale .
Campioni di codice
In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is 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.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end