SpecialMesh

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

The nesnesi, özelliğine bağlı olarak bir çerçeveyi uygular. Bir dizi seçenek mevcuttur.

  • Tuğla - Bir blok şekli, bir BlockMesh eşdeğer
  • Silindir - Bir silindir, 'Silindir' ile aynı olan bir Part ile bir Part.Shape 'Silindir'
  • Dosya Meshesi - Bir kullanıcı bir dokuya uygulanabilen FileMesh özellik ile eşdeğer bir Mesh yüklendi, kullanılarak FileMesh.TextureId özelliği üzerine dokuya uygulanabilir
  • Baş - Bir karakter baş şekli
  • Küre - Bir küre şekli, 'Top' ile benzer bir 'Ball' ile aynı, ancak tüm eksen üzerinde özgürce yeniden boyutlandırılabilir
  • Takoz - Bir takoz şekli, bir WedgePart ile aynı
  • Gövde - Eğimli yanlara sahip bir blok, yeniden kullanılmayacak

Not, her SpecialMesh.MeshType bir ölçek farklı olacak DataModelMesh.Scale kullanırken, bu konuda daha fazla bilgi için DataModelMesh.Scale sayfasına bakın.Özel Dokuma nesnesi de DataModelMesh.Offset özelliğini ifşa eder.

Özel Bir Mesh kullanırken, sadece bir parçanın görünümünün değiştiğini unutmak önemlidir.Parçanın çarpışma modeli aynı kalır.Örneğin, bir karakter mesh geometrisi hesapalınmadığı için bir meshe doğru yürüyemeyecektir.

Özel Dokuma vs MeshPart

Şu anda geliştirici tarafından oluşturulmuş bir çerçeveyi kullanmanın iki yolu var.Onlar SpecialMesh.FileType 'FileMesh' olarak ayarlanmış bir Özel Dokuyu kullanıyor veya bir MeshPart kullanarak.Bütün olarak, MeshPart nesnesi özellikle orada Özel Dokuyu geçti olsa da, bazı farklılıkların farkında olması gereken geliştiriciler var.

Kod Örnekleri

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.

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

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Özet

Özellikler

  • Class.BasePart``Class.SpecialMesh 'e uygulanacak çözümün türünü belirler, ebeveynliği yapılan.

Şuradan alınan Özellikler: FileMesh
  • MeshId:ContentId
    Paralel oku

    MeshId, görüntülenmesi gereken meshenin içeriği ID'sidir.

  • TextureId:ContentId
    Paralel oku

    TextureId, meshe uygulanacak olan dokunun içeriği ID'sidir.

Şuradan alınan Özellikler: DataModelMesh
  • Paralel oku

    Bir mesanın ofseti, mesanın görüntüleneceği noktanın mutlak konumunu belirler.

  • Paralel oku

    Bir meshin ölçeği, orijinal boyutlarına göre meshin boyutunu belirler.

  • Paralel oku

    Bir mesh'in dokusunun tonunu değiştirir, FileMesh.TextureId ile kullanılır.

Özellikler

Paralel oku

SpecialMesh nesnesinin uygulandığı BasePart örgüsü, MeshType özelliğine bağlıdır. Bir dizi seçenek mevcuttur.

  • Tuğla - Bir blok şekli, bir BlockMesh eşdeğer
  • Silindir - Bir silindir, 'Silindir' ile aynı olan bir Part ile bir Part.Shape 'Silindir'
  • Dosya Meshesi - Bir kullanıcı bir dokuya uygulanabilen FileMesh özellik ile eşdeğer bir Mesh yüklendi, kullanılarak FileMesh.TextureId özelliği üzerine dokuya uygulanabilir
  • Baş - Bir karakter baş şekli
  • Küre - Bir küre şekli, 'Top' ile benzer bir 'Ball' ile aynı, ancak tüm eksen üzerinde özgürce yeniden boyutlandırılabilir
  • Takoz - Bir takoz şekli, bir WedgePart ile aynı
  • Gövde - Eğimli yanlara sahip bir blok, yeniden kullanılmayacak

Not, her MeshType, DataModelMesh.Scale kullanırken farklı ölçeklenecektir, bu konuda daha fazla bilgi için lütfen DataModelMesh.Scale sayfasına bakın.

Kod Örnekleri

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

Yöntemler

Etkinlikler