Motor Sınıfı
EditableMesh
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Özet
Yöntemler
Devralınan Üyeler
Object kaynağından 6 tane devralındı
API Referansı
Özellikler
Yöntemler
AddBone
Parametreler
Dönüşler
AddColor
AddTriangle
BatchAdd
Parametreler
Dönüşler
BatchGetFaceAttributes
Parametreler
Dönüşler
BatchGetVertexAttributes
Parametreler
Dönüşler
BatchGetVertexFaceAttributes
EditableMesh:BatchGetVertexFaceAttributes(
Parametreler
Dönüşler
BatchSetFaceAttributes
BatchSetValues
BatchSetVertexFaceAttributes
Destroy
EditableMesh:Destroy():()
Dönüşler
()
FindClosestPointOnSurface
FindClosestVertex
FindVerticesWithinSphere
GetAdjacentFaces
GetAdjacentVertices
GetBoneByName
GetBoneCFrame
GetBoneIsVirtual
GetBoneParent
GetColorAlpha
GetFaceNormals
GetFacesWithAttribute
GetFacesWithColor
GetFacesWithNormal
GetFaceVertices
GetFacsCorrectivePose
GetFacsPose
Parametreler
Dönüşler
GetNormal
GetPosition
GetVertexBones
GetVertexBoneWeights
GetVertexColors
GetVertexFaceColor
GetVertexFaceNormal
GetVertexFaces
GetVertexFaceUV
GetVertexNormals
GetVertexUVs
GetVerticesWithAttribute
GetVerticesWithColor
GetVerticesWithNormal
GetVerticesWithUV
MergeVertices
RaycastLocal
Dönüşler
Kod Örnekleri
EditableMesh:RaycastLocal()
local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Uzayda EditableMesh'i başlat
local editableMesh = nil
local success, errorMsg = pcall(function()
editableMesh = AssetService:CreateEditableMeshAsync(Content.fromUri("rbxassetid://ASSET_ID"))
end)
local meshPart = nil
if success and editableMesh then
meshPart = AssetService:CreateMeshPartAsync(
Content.fromObject(editableMesh),
{ CollisionFidelity = Enum.CollisionFidelity.Hull }
)
meshPart.Parent = Workspace
else
warn(errorMsg)
end
-- Verilen noktadan bir ışın gönderen ve çarpma noktasının dünya noktasını ve UV koordinatını döndüren fonksiyon
local function castRayFromCamera(meshPart: MeshPart, editableMesh: EditableMesh, viewportPoint: Vector3)
if not meshPart then
return
end
-- Nesnenin her boyutta ne kadar ölçeklendiğini hesapla
local renderScale = meshPart.Size / meshPart.MeshSize
-- Tıklanan noktanın yönünde kameradan ışın oluştur
local ray = Workspace.CurrentCamera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y)
-- RaycastLocal() ile kullanmak için nesne alanına dönüştür
local relativeOrigin = meshPart.CFrame:PointToObjectSpace(ray.Origin) / renderScale
local relativeTarget = meshPart.CFrame:PointToObjectSpace(ray.Origin + ray.Direction * 100) / renderScale
local relativeDirection = relativeTarget - relativeOrigin
local faceId, point, barycentricCoordinate, vertId1, vertId2, vertId3 =
editableMesh:RaycastLocal(relativeOrigin, relativeDirection)
if not faceId then
-- Hiçbir yüze çarpmadı
return
end
-- Dünya alanında çarpma noktasını hesapla
local worldHitPoint = meshPart.CFrame:PointToWorldSpace(point * renderScale)
-- Yüzdeki UV'leri al
local uvId1 = editableMesh:GetVertexFaceUV(vertId1, faceId)
local uvId2 = editableMesh:GetVertexFaceUV(vertId2, faceId)
local uvId3 = editableMesh:GetVertexFaceUV(vertId3, faceId)
local uv1 = editableMesh:GetUV(uvId1)
local uv2 = editableMesh:GetUV(uvId2)
local uv3 = editableMesh:GetUV(uvId3)
-- Baryentrik koordinata göre yüz içinde UV'leri iç içe geçir
local u = (barycentricCoordinate.x * uv1.x) + (barycentricCoordinate.y * uv2.x) + (barycentricCoordinate.z * uv3.x)
local v = (barycentricCoordinate.x * uv1.y) + (barycentricCoordinate.y * uv2.y) + (barycentricCoordinate.z * uv3.y)
return worldHitPoint, Vector2.new(u, v)
endSetBoneCFrame
SetBoneIsVirtual
SetBoneName
SetBoneParent
SetColor
SetColorAlpha
SetFaceColors
SetFaceNormals
SetFaceUVs
SetFaceVertices
SetFacsBonePose
Parametreler
Dönüşler
()
SetFacsCorrectivePose
SetFacsPose
Parametreler
Dönüşler
()
SetNormal
SetPosition
SetVertexBones
SetVertexBoneWeights
SetVertexFaceColor
SetVertexFaceNormal
SetVertexFaceUV
Triangulate
EditableMesh:Triangulate():()
Dönüşler
()