Kelas Engine
EditableMesh
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Rangkuman
Metode
Anggota yang Diwariskan
6 yang diwarisi dari Object
Referensi API
Properti
Metode
AddBone
Parameter
Memberikan nilai
AddColor
AddNormal
AddTriangle
Destroy
EditableMesh:Destroy():()
Memberikan nilai
()
FindClosestPointOnSurface
FindClosestVertex
FindVerticesWithinSphere
GetAdjacentFaces
GetAdjacentVertices
GetBoneByName
GetBoneCFrame
GetBoneIsVirtual
GetBoneName
GetBoneParent
GetColorAlpha
GetFaceColors
GetFaceNormals
GetFacesWithAttribute
GetFacesWithColor
GetFacesWithNormal
GetFacesWithUV
GetFaceVertices
GetFacsCorrectivePose
GetFacsPose
Parameter
Memberikan nilai
GetNormal
GetPosition
GetVertexBones
GetVertexBoneWeights
GetVertexColors
GetVertexFaceColor
GetVertexFaceNormal
GetVertexFaces
GetVertexFaceUV
GetVertexNormals
GetVertexUVs
GetVerticesWithAttribute
GetVerticesWithColor
GetVerticesWithNormal
GetVerticesWithUV
MergeVertices
RaycastLocal
Memberikan nilai
Contoh Kode
EditableMesh:RaycastLocal()
local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Inisialisasi EditableMesh di ruang
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
-- Fungsi yang akan memancarkan sinar dari titik yang diberikan, mengembalikan titik dunia dari hit dan koordinat UV
local function castRayFromCamera(meshPart: MeshPart, editableMesh: EditableMesh, viewportPoint: Vector3)
if not meshPart then
return
end
-- Hitung seberapa besar objek diubah skalanya di setiap dimensi
local renderScale = meshPart.Size / meshPart.MeshSize
-- Buat sinar dari kamera sepanjang arah titik yang diklik
local ray = Workspace.CurrentCamera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y)
-- Konversi ke ruang objek untuk digunakan dengan RaycastLocal()
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
-- Tidak mengenai permukaan apapun
return
end
-- Hitung titik yang terkena dalam ruang dunia
local worldHitPoint = meshPart.CFrame:PointToWorldSpace(point * renderScale)
-- Dapatkan UV pada wajah
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)
-- Interpolasi UV dalam wajah berdasarkan koordinat barycentric
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
Parameter
Memberikan nilai
()
SetFacsCorrectivePose
SetFacsPose
Parameter
Memberikan nilai
()
SetNormal
SetPosition
SetVertexBones
SetVertexBoneWeights
SetVertexFaceColor
SetVertexFaceNormal
SetVertexFaceUV
Triangulate
EditableMesh:Triangulate():()
Memberikan nilai
()