Engine-klasse
EditableMesh
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Methoden
Overgenomen leden
6 overgenomen van Object
API-referentie
Eigenschappen
Methoden
AddBone
Parameters
Teruggaves
AddColor
AddTriangle
BatchAdd
Parameters
Teruggaves
BatchGetFaceAttributes
Parameters
Teruggaves
BatchGetVertexAttributes
Parameters
Teruggaves
BatchGetVertexFaceAttributes
EditableMesh:BatchGetVertexFaceAttributes(
Parameters
Teruggaves
BatchSetFaceAttributes
BatchSetValues
BatchSetVertexFaceAttributes
Clear
EditableMesh:Clear():()
Teruggaves
()
Destroy
EditableMesh:Destroy():()
Teruggaves
()
FindClosestPointOnSurface
FindClosestVertex
FindVerticesWithinSphere
GetAdjacentFaces
GetAdjacentVertices
GetBoneByName
GetBoneCFrame
GetBoneIsVirtual
GetBoneParent
GetColorAlpha
GetFaceNormals
GetFacesWithAttribute
GetFacesWithColor
GetFacesWithNormal
GetFaceVertices
GetFacsCorrectivePose
GetFacsPose
Parameters
Teruggaves
GetNormal
GetPosition
GetVertexBones
GetVertexBoneWeights
GetVertexColors
GetVertexFaceColor
GetVertexFaceNormal
GetVertexFaces
GetVertexFaceUV
GetVertexNormals
GetVertexUVs
GetVerticesWithAttribute
GetVerticesWithColor
GetVerticesWithNormal
GetVerticesWithUV
MergeVertices
RaycastLocal
Teruggaves
Codevoorbeelden
EditableMesh:RaycastLocal()
local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Initialiseer EditableMesh in de ruimte
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
-- Functie die een straal cast vanuit het gegeven punt, en de wereldpositie van de hit en de UV-coördinaat retourneert
local function castRayFromCamera(meshPart: MeshPart, editableMesh: EditableMesh, viewportPoint: Vector3)
if not meshPart then
return
end
-- Bereken hoeveel het object in elke dimensie wordt geschaald
local renderScale = meshPart.Size / meshPart.MeshSize
-- Maak een straal vanuit de camera in de richting van een geklikt punt
local ray = Workspace.CurrentCamera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y)
-- Converteer naar objectruimte om te gebruiken met 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
-- Geen vlakken geraakt
return
end
-- Bereken het raakpunt in de wereldruimte
local worldHitPoint = meshPart.CFrame:PointToWorldSpace(point * renderScale)
-- Verkrijg de UV's op het vlak
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)
-- Interpoleer UV's binnen het vlak op basis van de barycentrische coördinaat
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
Parameters
Teruggaves
()
SetFacsCorrectivePose
SetFacsPose
Parameters
Teruggaves
()
SetNormal
SetPosition
SetVertexBones
SetVertexBoneWeights
SetVertexFaceColor
SetVertexFaceNormal
SetVertexFaceUV
Triangulate
EditableMesh:Triangulate():()
Teruggaves
()