SpecialMesh
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Class.SpecialMesh nesnesi, BasePart özelliğine bağlı olarak bir meshe uygulayarak bir MeshType öğesi uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayarak bir meshe uygulayar
- Tuğla - Bir blok şekli, bir BlockMesh eşdeğer
- FileMesh - Bir kullanıcı Mesh yükledi, bir tekstür kullanarak FileMesh kullanılabilir bir özellik
- Baş - Bir karakterin kafa şekli
- Küre - Bir küre şekli, bir Part ile aynı, ancak bir Part.Shape ile 'top' olarak özgürce yeniden boyutlandırılabilir
- Kılıç - Bir kılıç şekli, WedgePart ile aynı
- Gövde - Yerleşik olmayan tarafları olan bir blok
Not, her bir SpecialMesh.MeshType kullanırken, DataModelMesh.Scale kullanırken farklı şekilde ölçeklenecektir, for more information on this please see the page on DataModelMesh.Scale . The SpecialMesh object also exposes the 1> Class.DataModelMesh.Offset1> property.
Özel Bir Dokunun Kullanılması durumunda, sadece bir parçanın görünümü değişir. Parçanın çarpışma modeli aynı kalır. Örneğin, bir karakter meshes üzerinde doğru yürüyemeyecektir, çünkü meshes geometrisi göz önünde hesap.
SpecialMesh vs MeshPart
Bir geliştirici tarafından oluşturulan bir malzeme kullanmanın iki yolu vardır. Onlar, SpecialMesh.FileType ile MeshPart olarak kullanıyorlar veya bir MeshPart nın üstesinden geliyorlar. Ancak, aslında, 1> Class.MeshPart1> nın
- BasePart.Material malzeme kullanırken ağ üzerinde doğru görüntülenir ve MeshPart kullanırken özel bir ağ üzerinde değil
- MeshParts``Class.MeshPart.CollisionFidelity özelliğini içerir, bu da bir MeshPart ın çarpışma modelinin geometrisiyle aynı olabilir. ÖzelMesh nesnesi, bu nedenle 0> Class.BasePart|BaseParts0> çarpışma modelini kullanır
- Class.FileMesh.MeshId|MeshId özelliği bir SpecialMesh veya Script çalışma sırasında 1> Class.Script1> veya 4> Class.LocalScript4> ile değiştirilebilir.
Kod Örnekleri
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
Özet
Özellikler
Class.SpecialMesh ile bağlantılı olan SpecialMesh tipine uygulanacak meshesi belirler.
MeshId, gösterilecek olan meshinin içeriği ID'dir.
TextureId, uygulanacak tekstürün ID'si (meshesine)'dir.
Bir meshenin ofseti, meshenin gösterileceği BasePart.Position ile ilgili pozisyonu belirler.
Bir meshenin ölçeği, meshenin orijinal boyutlarına göre meskenin boyutunu belirler.
Bir meshenin dokusunun renkini FileMesh.TextureId ile kullanılan değiştirir.
Özellikler
MeshType
Class.SpecialMesh nesninin Class.BasePart bağlandığı MeshType özelliğine bağlı olarak BasePart ağı kullanılır. Birkaç seçenek mevcut.
- Tuğla - Bir blok şekli, bir BlockMesh eşdeğer
- FileMesh - Bir kullanıcı Mesh yükledi, bir tekstür kullanarak FileMesh kullanılabilir bir özellik
- Baş - Bir karakterin kafa şekli
- Küre - Bir küre şekli, bir Part ile aynı, ancak bir Part.Shape ile 'top' olarak özgürce yeniden boyutlandırılabilir
- Kılıç - Bir kılıç şekli, WedgePart ile aynı
- Gövde - Yerleşik olmayan tarafları olan bir blok
Not, her MeshType kullanırken DataModelMesh.Scale kullanırken farklı ölçeklere sahiptir, for more information on this please see the page on DataModelMesh.Scale .
Kod Örnekleri
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