EditableMesh

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo

EditableMesh thay đổi màn hình visual đã được áp dụng khi kết nối với một MeshPart, cho phép truy cập và sửa đổi màn hình meshes ở cả Studio và trong kinh nghiệm.

Một EditableMesh có thể được tạo từ một Content đã tồn tại của mộ

Một EditableMesh được hiển thị khi kết nối với một MeshPart mới, thông qua AssetService:CreateMeshPartAsync() . Bạn có thể tạo nhiề

Gọi AssetService:CreateMeshPartAsync() sẽ tính toán lại va chạm và hình dạng chất lỏng với bất kỳ sửa đổi và cập nhật MeshPart hiện tại. Nó được khuyến nghị để làm đi

Mở màn hình chỉnh sửa cho Các Trải Nghiệm Đã Xuất Bản

Vì mục đích an ninh, sử dụng EditableMesh bị từ chối bởi mặc định cho các trải nghiệm đã phát sóng. Để bật kull dụng EditableMesh, bạn phải được 13+ tuổi đ

Các quyền

Để ngăn chặn sử dụng sai, AssetService:CreateEditableMeshAsync() chỉ cho phép bạn tải và chỉnh sửa tài nguyên mạng:

  • Đó là của người sáng tạo trải nghiệm (nếu trải nghiệm thuộc sở hữu của một cá nhân).
  • Đó là sở hữu của một nhóm (nếu trải nghiệm thuộc sở hữu của nhóm).
  • Đó là của người dùng đã đăng nhập Studio (nếu tập tin nơi chưa được lưu hoặc xuất bản trên Roblox).

Các API ném một lỗi nếu chúng được sử dụng để tải một tài nguyên không đáp ứng các tiêu chuẩn trên.

ID Vị Trí Đứng/Mặt Đứng Ổn Định

Nhiều phương pháp EditableMesh lấy

Lưu ý rằng các ID không được đảm bảo để được trong thứ tự và có thể có những lỗ trong số hóa, vì vậy khi lặp qua các vé trụ hoặc mặt, bạn nên lặp qua bảng được trả lại bởi GetVertices() hoặc <

Đặt tên cho các điểm dữ liệu

Một vertex là góc của một khuôn mặt, và kết nối trên cả hai mặt bằng cách định vị. Các vértice có thể có nhiều thuộc tính: vị trí, bình thường, coordenate UV, màu và transparency.

Đôi khi nó là hữu ích cho tất cả các khuôn mặt chạm vào một vértice để sử dụng cùng một giá trị đặc tính, nhưng đôi khi bạn sẽ muốn các khuôn mặt khác nhau sử dụng các giá trị đặc tính khác nhau trên

Khi tạo mặt, mỗi góc sẽ mặc định có một trong mỗi thuộc tính: một đường trung tâm thường, một đường trung tâm UV và một màu/độ trong suốt. Nếu bạn muốn tạo một mặt dưới, bạn nên tạo các đặc tính mới và đặt chúng trên mặt. Ví dụ, mã này sẽ tạo một c


local AssetService = game:GetService("AssetService")
-- Được cung cấp 4 ID vé cạnh, thêm một hình thể bình thường mới và 2 hình thể tam giác, tạo thành một quad nhọn
local function addSharpQuad(eMesh, vid0, vid1, vid2, vid3)
local nid = eMesh:AddNormal() -- Điều này tạo một ID bình thường được tính toán tự động
local fid1 = eMesh:AddTriangle(vid0, vid1, vid2)
eMesh:SetFaceNormals(fid1, {nid, nid, nid})
local fid2 = eMesh:AddTriangle(vid0, vid2, vid3)
eMesh:SetFaceNormals(fid2, {nid, nid, nid})
end
-- Tạo một khối lập phương với các cạnh bị gập giữa 6 bên
local function makeSharpCube()
local eMesh = AssetService:CreateEditableMesh()
local v1 = eMesh:AddVertex(Vector3.new(0, 0, 0))
local v2 = eMesh:AddVertex(Vector3.new(1, 0, 0))
local v3 = eMesh:AddVertex(Vector3.new(0, 1, 0))
local v4 = eMesh:AddVertex(Vector3.new(1, 1, 0))
local v5 = eMesh:AddVertex(Vector3.new(0, 0, 1))
local v6 = eMesh:AddVertex(Vector3.new(1, 0, 1))
local v7 = eMesh:AddVertex(Vector3.new(0, 1, 1))
local v8 = eMesh:AddVertex(Vector3.new(1, 1, 1))
addSharpQuad(eMesh, v5, v6, v8, v7) -- Phía trước
addSharpQuad(eMesh, v1, v3, v4, v2) -- Quay Lại
addSharpQuad(eMesh, v1, v5, v7, v3) -- Rẽ
addSharpQuad(eMesh, v2, v4, v8, v6) -- Phải
addSharpQuad(eMesh, v1, v2, v6, v5) -- Thân dưới
addSharpQuad(eMesh, v3, v7, v8, v4) -- Trên
eMesh:RemoveUnused()
return eMesh
end

Cuộn dây

Mặt lưới có một mặt trước và một mặt sau. Khi vẽ lưới, chỉ mặt trước của các khuôn mặt được vẽ bằng mặt trước của chúng, mặc dù bạn có thể thay đổi nó bằng cách thiết lập thuộc tính DoubleSided của lưới thành

Lượng trọng của các điểm trên khuôn mặt xác định liệu bạn có đang nhìn vào phía trước hay phía quay lại. Phía trước của khuôn mặt được hiển thị khi các điểm đi ngược hướng xung quanh nó.

Order of the vertices around the face

Giới hạn

EditableMesh hiện đang có giới hạn 60.000 đỉnh và 20.000 tam giác. Cố gắng thêm quá nhiều đỉnh hoặc tam giác sẽ gây ra lỗi.

Tóm Tắt

Thuộc Tính

Phương Pháp

Thuộc Tính

FixedSize

Chỉ Đọc
Không Sao Chép
Đọc Song Song
Bảo Mật Roblox

SkinningEnabled

Đọc Song Song

Phương Pháp

AddColor

Thêm một màu mới vào geometrical và trả một ID màu ổn định.

Tham Số

color: Color3

Màu mới.

alpha: number

Màu alpha (độ trong suốt).


Lợi Nhuận

ID màu ổn định của màu mới.

AddNormal

Thêm một giá trị bình thường mới vào geometrical và trả một ID bình thường ổn định. Nếu giá trị bình thường không được xác định, geometrical sẽ tự động tính toán.

Tham Số

normal: Vector3

Vectơ thường. Nếu giá trị bình thường không được xác định, vectơ sẽ được tính toán tự động.


Lợi Nhuận

ID bình thường ổn định của mới bình thường.

AddTriangle

Thêm một chiếc tam giác mới vào lưới và trả lại một ID khuôn mặt ổn định.

Tham Số

vertexId0: number

ID của các góc đầu tiên của tam giác.

vertexId1: number

ID của cạnh thứ hai của tam giác.

vertexId2: number

ID của các cạnh của hình tam giác.


Lợi Nhuận

ID khuôn mặt ổn định của khuôn mặt mới.

AddUV

Thêm mộtUV mới vào geometrical và trả lại một ID UV ổn định.

Tham Số

Điểm坐标 UV mới.


Lợi Nhuận

ID UV ổn định của nuevaUV.

AddVertex

Thêm một cột mới vào geometrical và trả lại một ID cột ổn định.

Tham Số

Định vị trong không gian đối tượng local của mesh.


Lợi Nhuận

Đã đạt được ID stable vertex of the new vertex.

Destroy

void

Lợi Nhuận

void

FindClosestPointOnSurface

Tìm điểm gần nhất trên bề mặt lưới. Đưa ID mặt, điểm trên lưới trong không gian đối tượng local và坐标 barycentric của vị trí trong khuôn mặt. Xem RaycastLocal() để biết thêm thông tin về坐độ barycentric.

Tham Số

point: Vector3

Vị trí điểm trong không gian đối tượng local của mesh.


Lợi Nhuận

Tập hợp của ID mặt, điểm vào mạng lưới trong không gian đối tượng địa phương và bản vẽ trung tâm của vị trí trong khuôn mặt.

FindClosestVertex

Tìm cạnh gần nhất đến một điểm cụ thể trong không gian và trả lại một ID cạnh ổn định.

Tham Số

toThisPoint: Vector3

Vị trí điểm trong không gian đối tượng local của mesh.


Lợi Nhuận

ID giao đỉnh ổn định gần nhất đến điểm được xác định trong không gian.

FindVerticesWithinSphere

Tìm tất cả các góc trong một cục sphere và trả lại một danh sách các ID góc ổn định.

Tham Số

center: Vector3

Trung tâm của hình dạng trong không gian đối tượng của lưới.

radius: number

Bán kính của quả cầu.


Lợi Nhuận

Danh sách các mã thức ổn định trong khu vực yêu cầu.

GetAdjacentFaces

Đưa một ID khuôn mặt ổn định, trả lại một danh sách các khuôn mặt lân cận.

Adjacent faces indicated around requested face

Tham Số

faceId: number

Lợi Nhuận

Danh sách các ID khuôn mặt cạnh trước khuôn mặt được cho.

GetAdjacentVertices

Đưa một ID giao đồng ổn định, trả lại một danh sách các giao đồng bên cạnh.

Adjacent vertices indicated around requested vertex

Tham Số

vertexId: number

ID Vertex xung quanh để nhận các góc cạnh bên.


Lợi Nhuận

Danh sách các ID của các góc vuông bên cạnh ID góc đó đã được cung cấp.

GetCenter


Lợi Nhuận

Trung tâm của hộp giới hạn của EditableMesh .

GetColor

Trả lại màu cho ID màu đã được cung cấp.

Tham Số

colorId: number

ID màu để nhận màu.


Lợi Nhuận

Màu cho màu ổn định yêu cầu.

GetColorAlpha

Trả lại màu alpha (độ trong suốt) tại ID màu ổn định được cung cấp.

Tham Số

colorId: number

ID màu cho nó để nhận alpha.


Lợi Nhuận

Màu alpha ở ID màu ổn định yêu cầu.

GetColors

Quay tất cả các màu của mạng lưới như một danh sách các ID màu ổn định.


Lợi Nhuận

Danh sách ID màu ổn định.

GetFaceColors

Trả lại ID màu của khuôn mặt cho các vép trên khuôn mặt.

Tham Số

faceId: number

ID khuôn mặt để nhận ID màu.


Lợi Nhuận

Danh sách ID màu được sử dụng cho các vép trên khuôn mặt được cho.

GetFaceNormals

Trả lại ID bình thường của khuôn mặt cho các đỉnh trên khuôn mặt.

Tham Số

faceId: number

ID khuôn mặt để nhận các ID thông thường.


Lợi Nhuận

Danh sách các ID thường được sử dụng cho các đỉnh trên khuôn mặt được cho.

GetFaceUVs

Trả lại ID UV của mặt cho các đỉnh trên mặt.

Tham Số

faceId: number

ID khuôn mặt để nhận ID UV.


Lợi Nhuận

Danh sách ID UV được sử dụng cho các vép trên khuôn mặt được cho.

GetFaceVertices

Quay ID của các cạnh của khuôn mặt.

Tham Số

faceId: number

Lợi Nhuận

Danh sách ID của các cạnh trên khuôn mặt được cho.

GetFaces

Quay tất cả các khuôn mặt của mạng lưới như một danh sách các ID mặt ổn định.


Lợi Nhuận

Danh sách các ID khuôn mặt ổn định.

GetFacesWithAttribute

Trả lại một danh sách các khuôn mặt sử dụng một ID ngưỡng cụ thể, ID thường, ID UV hoặc một ID màu.

Tham Số

id: number

ID đặc tính để tìm các khuôn mặt sử dụng nó.


Lợi Nhuận

Danh sách các ID khuôn mặt sử dụng ID đặc tính đã được cung cấp.

GetNormal

Trả lại véctor bình thường cho ID bình thường được cung cấp.

Tham Số

normalId: number

ID bình thường mà bạn có thể nhận được vektor bình thường.


Lợi Nhuận

Vector thường ở ID thường yêu cầu.

GetNormals

Trả lại tất cả các hệ số bình thường của mạng như một danh sách các hệ số bình thường ổn định.


Lợi Nhuận

Danh sách các ID bình thường ổn định.

GetPosition

Lấy vị trí của một vép trong không gian đối tượng local của mesh.

Tham Số

vertexId: number

ID vé máy bay ổn định để nhận vị trí.


Lợi Nhuận

Vị trí của một đỉnh trong không gian đối tượng lưới.

GetSize


Lợi Nhuận

Kích thước của EditableMesh .

GetUV

Đoạn dấu UV tại ID UV được cung cấp.

Tham Số

uvId: number

ID UV để nhậnCoordinate UV.


Lợi Nhuận

UV坐标 ở ID UV yêu cầu.

GetUVs

Quay lại tất cả các UV của mạng lưới như một danh sách các ID UV ổn định.


Lợi Nhuận

Danh sách các ID UV ổn định.

GetVertices

Quay tất cả các góc nhìn là một danh sách các ID góc ổn định.


Lợi Nhuận

Danh sách các mã thân cây ổn định.

GetVerticesWithAttribute

Trả lại một danh sách các cạnh sử dụng một ID mặt nạ, ID thường, ID UV hoặc màu sắc ID.

Tham Số

id: number

ID đặc tính để tìm các vértice sử dụng nó.


Lợi Nhuận

Danh sách ID của các thành phần dùng ID tương tự như đã đề cập.

IdDebugString

Trả lại một chuỗi mô tả một ID ổn định, hữu ích cho các mục đích debug, như f17 hoặc v12 , chứa đánh máy, số ID và phiên bản.

Tham Số

id: number

ID để trả lại một chuỗithông tin trình xử lý.


Lợi Nhuận

Chuỗi mô tả ID ở dạng đọc nhân văn.

MergeVertices

Map

Hợp nhất các góc nhìn cùng nhau, để sử dụng một ID góc nhìn duy nhất nhưng giữ các ID đặc tính nguyên bản khác.

Tham Số

mergeTolerance: number

Khoảng cách mà các góc được xem xét để chạm vào nhau.


Lợi Nhuận

Map

Một bản đồ của ID cũ của vért đến ID vért mới cho vért đã được hợp nhất.

RaycastLocal

Tạo một tia và trả lại một điểm giao thoa, ID mặt và bản vẽ barycentric. Các đầu vào và ra của phương pháp này đều ở không gian đối tượng địa lý của mesh.

Một barycentric coordinate là một cách để đặc biệt hóa một điểm trong một khuôn mặt như một kết hợp trọng số của 3 vé của khuôn mặt. Điều này hữu ích như một cách chung để hòa hợp các đặc tính vé. Xem mẫu mã mã như một hình minh họa.

Tham Số

origin: Vector3

Nguồn của các ray trong không gian đối tượng local của lưới.

direction: Vector3

Hướng của các tia.


Lợi Nhuận

Tứ trụ của điểm giao thoa, mặt ID và barycentric坐标.

Mẫu mã

EditableMesh:RaycastLocal()

local AssetService = game:GetService("AssetService")
-- Initialize EditableMesh in space
local success, editableMesh = pcall(function()
return AssetService:CreateEditableMeshAsync(Content.fromUri("rbxassetid://ASSET_ID"))
end)
local meshPart = nil
if success then
local initialSize = Vector3.new(1, 1, 1)
meshPart = editableMesh:CreateMeshPartAsync(initialSize)
meshPart.Parent = workspace
end
local function castRayFromCamera(position)
if not meshPart then return end
-- Create ray from camera along the direction of a clicked point
local camera = workspace.CurrentCamera
local ray = camera:ScreenPointToRay(position.X, position.Y)
-- Convert to object space to use with RaycastLocal()
local relativeOrigin = meshPart.CFrame:PointToObjectSpace(ray.Origin)
local relativeDirection = meshPart.CFrame:VectorToObjectSpace(ray.Direction)
local triangleId, point, barycentricCoordinate
triangleId, point, barycentricCoordinate = editableMesh:RaycastLocal(relativeOrigin, relativeDirection * 100)
if not triangleId then
-- Didn't hit any triangles
return
end
-- Interpolate UVs within the triangle
local vert1, vert2, vert3 = editableMesh:GetTriangleVertices(triangleId)
local uv0 = editableMesh:GetUV(vert1)
local uv1 = editableMesh:GetUV(vert2)
local uv2 = editableMesh:GetUV(vert3)
local u = (barycentricCoordinate.x * uv0.x) + (barycentricCoordinate.y * uv1.x) + (barycentricCoordinate.z * uv2.x)
local v = (barycentricCoordinate.x * uv0.y) + (barycentricCoordinate.y * uv1.y) + (barycentricCoordinate.z * uv2.y)
return Vector2.new(u, v)
end

RemoveFace

void

Loại bỏ một khuôn mặt bằng cách sử dụng ID khuôn mặt ổn định của nó.

Tham Số

faceId: number

Lợi Nhuận

void

RemoveUnused

Loại bỏ tất cả các góc, bình thường, UV và màu mà không được sử dụng trên bất kỳ khuôn mặt nào và trả lại các ID bị xóa.


Lợi Nhuận

Tất cả các ID stable bị xóa.

ResetNormal

void

Đặt lại ID này thành một mức giá trị bình thường để được tính toán tự động dựa trên hình dạng của lưới, thay vì thiết cài đặtthủ công.

Tham Số

normalId: number

ID bình thường ổn định để trả về mặc định.


Lợi Nhuận

void

SetColor

void

Đặt màu cho một ID màu.

Tham Số

colorId: number

ID màu ổn định để thiết lập màu.

color: Color3

Màu để thiết cài đặt.


Lợi Nhuận

void

SetColorAlpha

void

Đặt màu alpha (độ trong suốt) cho một ID màu.

Tham Số

colorId: number

ID màu ổn định để thiết lập màu alpha.

alpha: number

Alpha để thiết cài đặt.


Lợi Nhuận

void

SetFaceColors

void

Đặt màu mũi tên của khuôn mặt thành các ID màu mới.

Tham Số

faceId: number

ID khuôn mặt để cập nhật màu vép.

ids: Array

Danh sách ID màu mới ổn định để sử dụng cho các cạnh của khuôn mặt được cho.


Lợi Nhuận

void

SetFaceNormals

void

Đặt các thông số bình thường của mặt đến các ID mới.

Tham Số

faceId: number

ID khuôn mặt để cập nhật các hệ số bất thường của vértice.

ids: Array

Danh sách ID bình thường mới để sử dụng cho các vép của khuôn mặt được cho.


Lợi Nhuận

void

SetFaceUVs

void

Đặt ID UV của khuôn mặt thành các ID UV mới.

Tham Số

faceId: number

ID khuôn mặt để cập nhật các UV khuôn mặt.

ids: Array

Danh sách ID UV mới ổn định để sử dụng cho các cạnh của khuôn mặt được cho.


Lợi Nhuận

void

SetFaceVertices

void

Đặt ID của các cạnh của khuôn mặt để các ID cạnh mới.

Tham Số

faceId: number

ID khuôn mặt để cập nhật các cạnh.

ids: Array

Danh sách các mới stablevertex IDs để sử dụng cho khuôn mặt đó.


Lợi Nhuận

void

SetNormal

void

Đặt giá trị bình thường cho một ID bình thường. Điều này sẽ thay đổi giá trị bình thường cho mỗi góc mặt sử dụng ID bình thường.

Tham Số

normalId: number

ID stable normal để thiết lập vektor bình thường.

normal: Vector3

Vectơ bình thường để thiết cài đặt.


Lợi Nhuận

void

SetPosition

void

Đặt vị trí một cạnh trong không gian đối tượng local của mesh.

Tham Số

vertexId: number

ID stable của vé cầu để đặt.

Định vị trong không gian đối tượng local của mesh.


Lợi Nhuận

void

SetUV

void

Đặt vị trí UV cho một ID UV.

Tham Số

uvId: number

ID UV để thiết lập các hệ số UV.

UV坐标.


Lợi Nhuận

void

Triangulate

void

Chia tất cả các khuôn mặt trên mạng để làm thành tam giác. Hiện tại, điều này không làm gì được vì chỉ có tam giác mới có thể tạo, nhưng nếu mã của bạn sử dụng tam giác, thì được khuyến nghị bạn gọi phương thức này sau khi gọi AssetService:CreateEditableMeshAsync()


Lợi Nhuận

void

Sự Kiện