SpecialMesh
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
L'oggetto SpecialMesh applica un mesh a un BasePart a seconda della proprietà MeshType. Ci sono una serie di opzioni disponibili.
- Mattone - Una forma di blocco, equivalente a un BlockMesh
- FileMesh - Un utente ha caricato Mesh, pari a FileMesh che una texture può essere applicata per l'uso della ProprietàFileMesh.TextureId
- Testa - Una forma di testa del personaggio
- Sfera - Una forma di sfera, simile a un Part con un Part.Shape di 'Ball' ma può essere ridimensionata liberamente su tutti gli assi
- Cuneo - Un cuneo a forma, identico a un WedgePart
- Torso - Un blocco con lati inclinati, a causa di essere Deprecare
Nota, ogni SpecialMesh.MeshTypeScalerà in modo diverso quando si utilizza DataModelMesh.Scale, per ulteriori informazioni su questo, vedi la pagina su DataModelMesh.Scale. L'oggetto SpecialMesh esporrà anche la Proprietà2>Class.DataModelMesh.Offset2>.
È importante ricordare che quando si utilizza un 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.
SpecialMesh vs MeshPart
Ci sono attualmente due modi per utilizzare una Mesh, magliacreata da un sviluppatore. Stanno usando una SpecialMesh con il SpecialMesh.FileType impostato su MeshPart, o usando un MeshPart . Anche se, in generale, l'oggetto 2> Class.MeshPart2> ha superato il 5> Class.Mesh5> . Ci sono alcune differenze tra gli svilupp
- BasePart.Material mostra correttamente sulla griglia quando si utilizza un MeshPart e non quando si utilizza un SpecialMesh
- MeshParts includono la ProprietàMeshPart.CollisionFidelity, che significa che il modello di collisione di un MeshPart può essere impostato per assomigliare alla geometria della Mesh, maglia. Il oggetto SpecialMesh, d'altra parte, usa il modello di collisione dei genitori 0> Class.BasePart|BaseParts0>
- La proprietà MeshId di un SpecialMesh può essere cambiata da un Script o 1>Class.LocalScript1> durante l'Tempo esecuzione. La proprietà 4>Class.MeshPart.MeshId|MeshId4> di un 7>Class.MeshPart7> non può essere cambiata.
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()
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 sarà applicato alla BasePart che SpecialMesh è parented a.
Il MeshId è l'ID del contenuto della mesh che deve essere visualizzata.
Il TextureId è l'ID del contenuto della texture che deve essere applicata al Mesh, maglia.
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à
MeshType
Il mesh che l'oggetto SpecialMesh applica al BasePart dipende dalla ProprietàMeshType. Ci sono una serie di opzioni disponibili.
- Mattone - Una forma di blocco, equivalente a un BlockMesh
- FileMesh - Un utente ha caricato Mesh, pari a FileMesh che una texture può essere applicata per l'uso della ProprietàFileMesh.TextureId
- Testa - Una forma di testa del personaggio
- Sfera - Una forma di sfera, simile a un Part con un Part.Shape di 'Ball' ma può essere ridimensionata liberamente su tutti gli assi
- Cuneo - Un cuneo a forma, identico a un WedgePart
- Torso - Un blocco con lati inclinati, a causa di essere Deprecare
Nota, ogni MeshType si adatta in modo diverso quando si utilizza DataModelMesh.Scale , per ulteriori informazioni su questo, vedi la pagina su DataModelMesh.Scale .
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.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