SpecialMesh

Visualizza obsoleti

*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
  • Cylinder - Un cilindro, identico a un Part con un Part.Shape di 'Cylinder'
  • 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>
  • Il mesh di un MeshPartScala su tutti gli assi a seconda della proprietà Size della MeshPart, il mesh di uno SpecialMesh non
  • L'oggetto SpecialMesh include le proprietà Offset e Scale mentre MeshParts non
  • 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

Mesh Offset and Scale

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()
Mesh VertexColor

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à

Proprietà provenienti da FileMesh
  • MeshId:ContentId
    Lettura Parallela

    Il MeshId è l'ID del contenuto della mesh che deve essere visualizzata.

  • TextureId:ContentId
    Lettura Parallela

    Il TextureId è l'ID del contenuto della texture che deve essere applicata al Mesh, maglia.

Proprietà provenienti da DataModelMesh
  • Lettura Parallela

    L'Offset di una mesh determina la posizione relativa dalla Class.BasePart.Position di un BasePart.Position che la mesh sarà visualizzata.

  • Lettura Parallela

    La scala di una mesh determina la dimensione della mesh rispetto alle sue dimensioni originali.

  • Lettura Parallela

    Cambia il colore di una Strutturadi Mesh, maglia, usata con FileMesh.TextureId .

Proprietà

Lettura Parallela

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
  • Cylinder - Un cilindro, identico a un Part con un Part.Shape di 'Cylinder'
  • 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

Mesh VertexColor

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

Metodi

Eventi