EditableMesh

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia

EditableMesh zmienia zastosowaną sieć wizualną po połączeniu z MeshPart, umożliwiając zapytanie i modyfikację siatki zarówno w Studio, jak i w doświadczeniu.

Aktywacja dla opublikowanych doświadczeń

Ze względów bezpieczeństwa używanie EditableMesh nie powoduje błędu domyślnie dla opublikowanych doświadczeń.Aby włączyć użycie, musisz mieć 13+ lat zweryfikowane i zweryfikowane ID.Po weryfikacji otwórz Ustawienia gry w Studio, wybierz Bezpieczeństwo i włącz przełącznik Pozwolenie na API siatki/obrazu .

Uprawnienia

Aby zapobiec nadużyciu, AssetService:CreateEditableMeshAsync() pozwoli tylko na ładowanie i edytowanie zasobów siatki:

  • Należą one do twórcy doświadczenia (jeśli doświadczenie należy do osoby fizycznej).
  • Należące do grupy (jeśli doświadczenie należy do grupy).
  • Należą one do użytkownika Studio zalogowanego (jeśli plik miejsca nie został jeszcze zapisany lub opublikowany w Roblox).

Ograniczenia pamięci

Edytowalne zasoby są obecnie drogie ze względu na zużycie pamięci.Aby ograniczyć jego wpływ na wydajność klienta, EditableMesh ma surowe budżety pamięci po stronie klienta, chociaż serwer, Studio i wtyczki działają z nieograniczoną pamięcią.Użycie FixedSize może pomóc utrzymać się w budżecie pamięci i, w niektórych scenariuszach, połączenie jednego EditableMesh z wieloma MeshParts (kilkukrotnym odwoływaniem) może pomóc w optymalizacji pamięci.

Tworzenie i wyświetlanie

An EditableMesh można utworzyć z istniejącego Content z MeshPart lub ID siatki za pomocą AssetService:CreateEditableMeshAsync() lub pustą EditableMesh można stworzyć za pomocą AssetService:CreateEditableMesh().Można go następnie wyświetlić, zmodyfikować i zaktualizować model kolizji.Nie wszystkie kroki są konieczne; na przykład możesz chcieć utworzyć EditableMesh tylko po to, aby wysłać promieniowanie, bez wyświetlania go nigdy.


local AssetService = game:GetService("AssetService")
-- Utwórz puste Edytowalne Mesh
local editableMesh = AssetService:CreateEditableMesh()
-- Twórz Edytowalną Sieć z ID zasobu
local editableMeshFromAsset = nil
local success, errorMessage = pcall(function()
editableMeshFromAsset = AssetService:CreateEditableMeshAsync(Content.fromAssetId(ASSET_ID))
end)
-- Twórz Edytowalną Sieć z innej Edytowalnej Sieci
local editableMeshFromAnother = nil
local success, errorMessage = pcall(function()
editableMeshFromAnother = AssetService:CreateEditableMeshAsync(Content.fromObject(OTHER_EDITABLE_MESH))
end)
-- Twórz edytowalną siatkę z części siatki
local editableMeshFromMeshPart = nil
local success, errorMessage = pcall(function()
editableMeshFromMeshPart = AssetService:CreateEditableMeshAsync(MESH_PART.MeshContent)
end)

An EditableMesh jest wyświetlany, gdy jest powiązany z nowym MeshPart poprzez AssetService:CreateMeshPartAsync() .Możesz utworzyć więcej MeshPart instancji, które odwołują się do tego samego EditableMesh``Datatype.Content lub łączą się z istniejącym MeshPart poprzez MeshPart:ApplyMesh() .


local AssetService = game:GetService("AssetService")
local Workspace = game:GetService("Workspace")
-- Twórz Edytowalną Sieć z ID zasobu
local editableMeshFromAsset = nil
local success, errorMessage = pcall(function()
editableMeshFromAsset = AssetService:CreateEditableMeshAsync(Content.fromAssetId(ASSET_ID))
end)
-- Utwórz nową część siatki powiązaną z Edytowaną siatką
local newMeshPart = nil
local success, errorMessage = pcall(function()
newMeshPart = AssetService:CreateMeshPartAsync(Content.fromObject(editableMeshFromAsset))
end)
-- Alternatywnie, połącz nową część siatki utworzoną powyżej z istniejącą częścią siatki
local existingMeshPart = Workspace:FindFirstChild("EXISTING_MESH_PART")
existingMeshPart:ApplyMesh(newMeshPart)

Aby ponownie obliczyć kolizję i geometrię płynów po edycji, możesz ponownie wezwać AssetService:CreateMeshPartAsync() i MeshPart:ApplyMesh() , aby zaktualizować istniejący MeshPart.Zaleca się ogólnie zrobić to na końcu edycji koncepcyjnej, a nie po poszczególnych wezwaniach do metod, które manipulują geometrią.Wizualne zmiany w siatce zawsze będą natychmiast odzwierciedlone przez silnik, bez potrzeby wzywania AssetService:CreateMeshPartAsync() .

Naprawione siatki o stałym rozmiarze

Podczas tworzenia EditableMesh z istniejącego zasobu siatki (poprzez AssetService:CreateEditableMeshAsync() ), wynikowa edytowalna siatka jest domyślnie o stałej wielkości.Sieci o stałym rozmiarze są bardziej wydajne pod względem pamięci, ale nie możesz zmienić liczby wierzchołków, twarzy lub atrybutów.Tylko wartości atrybutów wierzchołków i pozycji mogą być edytowane.


local AssetService = game:GetService("AssetService")
-- Twórz edytowalną siatkę bez domyślnego rozmiaru
local editableMeshFromAsset = nil
local success, errorMessage = pcall(function()
editableMeshFromAsset = AssetService:CreateEditableMeshAsync(Content.fromAssetId(ASSET_ID), {FixedSize = false})
end)

Stabilne ID punktów/twarzy

Wiele metod EditableMesh podaje wierzchołek , normalny , UV , kolor i twarz ID.Są reprezentowane jako liczby całkowite w Luau, ale wymagają pewnej specjalnej obsługi.Główną różnicą jest to, że identyfikatory są stabilne i pozostają takie same, nawet jeśli inne części siatki zmieniają się.Na przykład, jeśli EditableMesh ma pięć wierzchołków {1, 2, 3, 4, 5} i usuniesz wierzchołek 4, nowe wierzchołki będą {1, 2, 3, 5}.

Zauważ, że identyfikatory nie są gwarantowane do porządku i mogą wystąpić przerwy w numeracji, więc podczas iteracji przez węzły lub twarze powinieneś iterować przez tabelę zwrotzoną przez GetVertices() lub GetFaces().

Rozdzielone atrybuty wierzchołka

Wierzchołek jest krawędzią twarzy i łączy twarze topologicznie .Punkty mogą mieć kilka atrybutów: pozycję, normalną, koordynaty UV, kolor i przejrzystość.

Czasami przydatne jest, aby wszystkie twarze, które dotykają wierzchołka, używały tych samych wartości atrybutów, ale czasami będziesz chciał, aby różne twarze używały różnych wartości atrybutów na tym samym wierzchołku.Na przykład, na gładkiej kuli, każdy wierzchołek będzie miał tylko jedną normalną.W przeciwieństwie do tego, na krawędzi kostki będzie mieć 3 różne normalne (po jednym dla każdej przylegającej twarzy).Możesz także mieć szwy w koordynatach UV lub ostre zmiany w kolorach wierzchołków.

Podczas tworzenia twarzy każdy wierzchołek domyślnie będzie miał jeden z każdej cechy: jeden normalny, jedną koordynatę UV i jeden kolor/przezroczystość.Jeśli chcesz stworzyć szw, powinieneś utworzyć nowe atrybuty i umieścić je na twarzy.Na przykład ten kod stworzy ostry kubeł:


local AssetService = game:GetService("AssetService")
-- Dane 4 identyfikatory wierzchołków, dodaje nową normalną i 2 trójkąty, tworząc ostry kwadra
local function addSharpQuad(editableMesh, vid0, vid1, vid2, vid3)
local nid = editableMesh:AddNormal() -- Tworzy to normalną identyfikator, który jest automatycznie obliczany
local fid1 = editableMesh:AddTriangle(vid0, vid1, vid2)
editableMesh:SetFaceNormals(fid1, {nid, nid, nid})
local fid2 = editableMesh:AddTriangle(vid0, vid2, vid3)
editableMesh:SetFaceNormals(fid2, {nid, nid, nid})
end
-- Tworzy kostkę z zaokrąglonymi krawędziami między 6 stronami
local function makeSharpCube()
local editableMesh = AssetService:CreateEditableMesh()
local v1 = editableMesh:AddVertex(Vector3.new(0, 0, 0))
local v2 = editableMesh:AddVertex(Vector3.new(1, 0, 0))
local v3 = editableMesh:AddVertex(Vector3.new(0, 1, 0))
local v4 = editableMesh:AddVertex(Vector3.new(1, 1, 0))
local v5 = editableMesh:AddVertex(Vector3.new(0, 0, 1))
local v6 = editableMesh:AddVertex(Vector3.new(1, 0, 1))
local v7 = editableMesh:AddVertex(Vector3.new(0, 1, 1))
local v8 = editableMesh:AddVertex(Vector3.new(1, 1, 1))
addSharpQuad(editableMesh, v5, v6, v8, v7) -- Pród
addSharpQuad(editableMesh, v1, v3, v4, v2) -- Wróć
addSharpQuad(editableMesh, v1, v5, v7, v3) -- Lewo
addSharpQuad(editableMesh, v2, v4, v8, v6) -- Prawo
addSharpQuad(editableMesh, v1, v2, v6, v5) -- Dół
addSharpQuad(editableMesh, v3, v7, v8, v4) -- Góra
editableMesh:RemoveUnused()
return editableMesh
end

Windowanie

Oblicza siatki mają przód i tył.Podczas rysowania siatek tylko przednie części twarzy są rysowane domyślnie, choć możesz to zmienić, ustawiając właściwość siatki na wartość .

kolejność wierzchołków wokół twarzy decyduje, czy patrzysz na przód czy na tył.Przód twarzy jest widoczny, gdy wierzchołki krążą wokół niego w przeciwnym kierunku.

Order of the vertices around the face

Pozy FACS

Animowane głowy korzystają z systemu kodowania akcji twarzowych (FACS).Zobacz odniesienie do pozy FACS, aby uzyskać pomocne informacje przy użyciu metod podobnych.

Każda poza FACS jest określona przez wartość Enum.FacsActionUnit.Dla pozy FACS wirtualne kości mogą każde mieć CFrame, które przekształca początkowe CFrame kości w pozie wiązania siatki w pozycji CFrame dla pozycji tej jednostki akcji FACS.Wszystkie kości CFrames znajdują się w lokalnej przestrzeni siatki.

Te pozy FACS są miksowane razem podczas animacji.Czasami mieszanie podstawowych pozycji daje słabe wyniki.W tych przypadkach możesz pominąć mieszanie konkretnych kombinacji pozy bazowych z pozą korygującą poprawiającą, która jest bardziej przyjemna.Poza korygująca jest określona przez 2 lub 3 wartości Enum.FacsActionUnit .Podobnie jak poza bazową pozą FACS, dla pozy korygującej wirtualne kości mogą każde mieć CFrame, które przekształcają początkowe CFrame w pozie wiązania siatki w prawidłową CFrame dla tej poprawki FACS.

Ograniczenia

EditableMesh obecnie ma ograniczenie 60 000 węzłów i 20 000 trójkątów. Dodawanie zbyt wielu węzłów lub trójkątów spowoduje błąd.

Podsumowanie

Właściwości

  • Tylko do odczytu
    Bez replikacji
    Zabezpieczenia na platformie Roblox
    Odczyt równoległy

    Wyświetla true jeśli siatka jest o stałym rozmiarze.

Metody

Właściwości

FixedSize

Tylko do odczytu
Bez replikacji
Zabezpieczenia na platformie Roblox
Odczyt równoległy

Sieci o stałych rozmiarach pozwalają na zmianę wartości atrybutów wierzchołków, ale nie pozwalają na dodawanie lub usuwanie wierzchołków i trójkątów.

Metody

AddColor

Dodaje nowy kolor do geometrii i zwraca stabilną identyfikator koloru.

Parametry

color: Color3

Nowa kolor.

Wartość domyślna: ""
alpha: number

Kolor alfa (przezroczystość).

Wartość domyślna: ""

Zwroty

Stabilny identyfikator koloru nowego koloru.

AddNormal

Dodaje nową normalną do geometrii i zwraca stabilną normalną identyfikator. Jeśli wartość normalna nie jest określona, normalna zostanie automatycznie obliczona.

Parametry

normal: Vector3

Normalny wektor. Jeśli normalna wartość nie jest określona, normalna zostanie automatycznie obliczona.

Wartość domyślna: ""

Zwroty

Stabilny normalny identyfikator nowej normalności.

AddTriangle

Dodaje nowy trójkąt do siatki i zwraca stabilną identyfikator twarzy.

Parametry

vertexId0: number

ID pierwszego wierzchołka trójkąta.

Wartość domyślna: ""
vertexId1: number

ID drugiego wierzchołka trójkąta.

Wartość domyślna: ""
vertexId2: number

ID trzeciego wierzchołka trójkąta.

Wartość domyślna: ""

Zwroty

Stabilna identyfikacja twarzy nowej twarzy.

AddUV

Dodaje nowy UV do geometrii i zwraca stabilny identyfikator UV.

Parametry

Nowa koordynata UV.

Wartość domyślna: ""

Zwroty

Stabilny identyfikator UV nowego UV.

AddVertex

Dodaje nowy wierzchołek do geometrii i zwraca stabilną identyfikację wierzchołka.

Parametry

Pozycja w przestrzeni obiektu lokalnego w siatce.

Wartość domyślna: ""

Zwroty

Stabilny identyfikator wierzchołka nowego wierzchołka.

Destroy

()

Niszczy zawartość siatki, natychmiast odzyskując używaną pamięć.


Zwroty

()

FindClosestPointOnSurface

Znajduje najbliższy punkt na powierzchni siatki.Zwraca identyfikator twarzy, wskazuje na siatkę w przestrzeni obiektu lokalnego i barycentryczną koordynatę pozycji w obrębie twarzy.Zobacz RaycastLocal() dla więcej informacji o koordynatach barycentrycznych.

Parametry

point: Vector3

Pozycja punktu w przestrzeni lokalnego obiektu w siatce.

Wartość domyślna: ""

Zwroty

Para identyfikatora twarza, punkt na siatce w przestrzeni obiektu lokalnego i współrzędne barycentryczne pozycji w obrębie twarza.

FindClosestVertex

Znajduje najbliższy wierzchołek do określonego punktu w przestrzeni i zwraca stabilną identyfikator wierzchołka.

Parametry

toThisPoint: Vector3

Pozycja punktu w przestrzeni lokalnego obiektu w siatce.

Wartość domyślna: ""

Zwroty

Najbliższy stabilny ID wierzchołka do określonej punktu w przestrzeni.

FindVerticesWithinSphere

Znajduje wszystkie wierzchołki w określonej sferze i zwraca listę stabilnych identyfikatorów wierzchołków.

Parametry

center: Vector3

Centrum kuli w przestrzeni lokalnego obiektu w siatce.

Wartość domyślna: ""
radius: number

Promień sfery.

Wartość domyślna: ""

Zwroty

Lista stabilnych identyfikatorów wierzchołków w żądanej sferze.

GetAdjacentFaces

Biorąc pod uwagę stabilną identyfikator twarzy, zwraca listę sąsiednich twarzy.

Adjacent faces indicated around requested face

Parametry

faceId: number
Wartość domyślna: ""

Zwroty

Lista identyfikatorów twarzy sąsiadujących z daną twarzą.

GetAdjacentVertices

Dane stabilne ID wierzchołka, zwraca listę sąsiednich wierzchołków.

Adjacent vertices indicated around requested vertex

Parametry

vertexId: number

ID punktu, wokół którego uzyskać sąsiednie węzły.

Wartość domyślna: ""

Zwroty

Lista identyfikatorów sąsiednich wierzchołków wokół danego identyfikatora wierzchołka.

GetCenter


Zwroty

Centrum obramowania pudełka EditableMesh .

GetColor

Zwraca kolor dla podanego ID koloru.

Parametry

colorId: number

ID koloru, z którego uzyskać kolor.

Wartość domyślna: ""

Zwroty

Kolor dla żądanego ID stabilnego koloru.

GetColorAlpha

Zwraca kolor alfa (przezroczystość) przy podanym ID stabilnego koloru.

Parametry

colorId: number

ID koloru, z którego uzyskać alfa.

Wartość domyślna: ""

Zwroty

Kolor alfa przy żądaniu stabilnego ID koloru.

GetColors

Zwraca wszystkie kolory siatki jako listę stabilnych ID kolorów.


Zwroty

Lista stabilnych kolorów ID.

GetFaceColors

Zwraca ID kolorów twarza dla punktów na twarzu.

Parametry

faceId: number

ID twarza, dla którego należy uzyskać ID koloru.

Wartość domyślna: ""

Zwroty

Lista identyfikatorów kolorów używanych do punktów na danym obliczu.

GetFaceNormals

Zwraca normalne identyfikatory twarza dla punktów na twarzu.

Parametry

faceId: number

ID twarzy, dla którego należy uzyskać normalne ID.

Wartość domyślna: ""

Zwroty

Lista normalnych identyfikatorów używanych do punktów na danym obliczu.

GetFaceUVs

Zwraca identyfikatory UV twarza dla punktów na twarzu.

Parametry

faceId: number

ID twarzy, dla której należy uzyskać ID UV.

Wartość domyślna: ""

Zwroty

Lista identyfikatorów UV używanych do punktów na danym obliczu.

GetFaceVertices

Zwraca ID krawędzi twarza.

Parametry

faceId: number
Wartość domyślna: ""

Zwroty

Lista identyfikatorów wierzchołków wokół danego oblicza.

GetFaces

Zwraca wszystkie twarze siatki jako listę stabilnych identyfikatorów twarzy.


Zwroty

Lista stabilnych identyfikatorów twarzy.

GetNormal

Zwraca normalny wektor dla podanego normalnego ID.

Parametry

normalId: number

Normalny ID, dla którego należy uzyskać normalny wektor.

Wartość domyślna: ""

Zwroty

Normalny wektor przy żądanym normalnym ID.

GetNormals

Zwraca wszystkie normalne z siatki jako listę stabilnych normalnych ID.


Zwroty

Lista stabilnych normalnych ID.

GetPosition

Zdobywa pozycję wierzchołka w przestrzeni lokalnego obiektu w siatce.

Parametry

vertexId: number

Stabilny identyfikator wierzchołka, dla którego uzyskać pozycję.

Wartość domyślna: ""

Zwroty

Pozycja wierzchołka w przestrzeni lokalnego obiektu w siatce.

GetSize


Zwroty

Rozmiar EditableMesh .

GetUV

Zwraca koordynaty UV w danym ID UV.

Parametry

uvId: number

ID UV, dla którego należy uzyskać koordynaty UV.

Wartość domyślna: ""

Zwroty

Koordynaty UV w żądanym ID UV.

GetUVs

Zwraca wszystkie UV z siatki jako listę stabilnych ID UV.


Zwroty

Lista stabilnych ID UV.

GetVertices

Zwraca wszystkie wierzchołki jako listę stabilnych identyfikatorów wierzchołków.


Zwroty

Lista stabilnych identyfikatorów wierzchołków.

IdDebugString

Zwraca ciąg opisujący stabilny identyfikator, przydatny do celów debugowania, takich jak f17 lub v12, zawierający typ, numer ID i wersję.

Parametry

id: number

ID, do którego należy zwrócić ciąg informacji o debugowaniu.

Wartość domyślna: ""

Zwroty

Sznurek, który opisuje ID w formacie czytelnym dla człowieka.

MergeVertices

Map

Łączy wierzchołki, które się stykają, aby używać jednego identyfikatora wierzchołka, ale zachować pozostałe oryginalne ID atrybutów.

Parametry

mergeTolerance: number

Odległość, w której uważa się, że wierzchołki się dotykają.

Wartość domyślna: ""

Zwroty

Map

Mapowanie starych ID wierzchołków do nowych identyfikatorów wierzchołków dla wierzchołków, które zostały połączone.

RaycastLocal

Rzuca promień i zwraca punkt styku, identyfikator twarzy i koordynaty barycentryczne.Wejścia i wyjścia tej metody znajdują się w przestrzeni obiektów lokalnych siatki.

Koordynata barycentryczna jest sposobem określenia punktu w obliczu jako ważone kombinację 3 punktów oblicza.Jest to przydatne jako ogólny sposób łączenia atrybutów wierzchołków.Zobacz przykład kodu tej metody jako ilustrację.

Parametry

origin: Vector3

Pochodzenie promienia w przestrzeni lokalnego obiektu w siatce.

Wartość domyślna: ""
direction: Vector3

Kierunek promienia.

Wartość domyślna: ""

Zwroty

Para punktu styczności, identyfikator twarzy i koordynaty barycentryczne.

Przykłady kodu

This code finds the position and UV coordinates of the closest point on an EditableMesh to the input point.

EditableMesh:RaycastLocal()

local AssetService = game:GetService("AssetService")
-- Initialize EditableMesh in space
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
print(errorMsg)
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

()

Usuwa twarz za pomocą jej stabilnej identyfikacji twarzy.

Parametry

faceId: number
Wartość domyślna: ""

Zwroty

()

RemoveUnused

Usuwa wszystkie wierzchołki, normalne, UV i kolory, które nie są używane w żadnej twarzy, i zwraca usunięte ID.


Zwroty

Wszystkie usunięte stałe ID.

ResetNormal

()

Zresetuj ten normalny identyfikator, aby był automatycznie obliczany na podstawie kształtu siatki, zamiast być ustawiony ręcznie.

Parametry

normalId: number

Stabilny normalny ID do zresetowania.

Wartość domyślna: ""

Zwroty

()

SetColor

()

Ustawia kolor dla ID koloru.

Parametry

colorId: number

Stabilny identyfikator koloru, dla którego ustawia się kolor.

Wartość domyślna: ""
color: Color3

Kolor do ustawienia.

Wartość domyślna: ""

Zwroty

()

SetColorAlpha

()

Ustawia kolor alfa (przezroczystość) dla ID koloru.

Parametry

colorId: number

Stabilny identyfikator koloru, dla którego ustawić można kolor alfa.

Wartość domyślna: ""
alpha: number

Alpha do ustawienia.

Wartość domyślna: ""

Zwroty

()

SetFaceColors

()

Ustawia kolory szczytu twarza na nowe ID kolorów.

Parametry

faceId: number

ID twarzy, dla którego należy zaktualizować kolory wierzchołków.

Wartość domyślna: ""
ids: Array

Lista nowych, stabilnych identyfikatorów kolorów do użycia dla wierzchołków danego oblicza.

Wartość domyślna: ""

Zwroty

()

SetFaceNormals

()

Ustawia normalne wierzchołki twarza na nowe normalne ID.

Parametry

faceId: number

ID twarzy, dla której należy zaktualizować normy wierzchołków.

Wartość domyślna: ""
ids: Array

Lista nowych, stabilnych normalnych identyfikatorów do użycia dla wierzchołków danego oblicza.

Wartość domyślna: ""

Zwroty

()

SetFaceUVs

()

Ustawia wierzchołki UV twarza na nowe ID UV.

Parametry

faceId: number

ID twarza, dla którego należy zaktualizować wierzchołki UV.

Wartość domyślna: ""
ids: Array

Lista nowych stabilnych identyfikatorów UV do użycia dla wierzchołków danego oblicza.

Wartość domyślna: ""

Zwroty

()

SetFaceVertices

()

Ustawia wierzchołki twarza na nowe ID wierzchołków.

Parametry

faceId: number

ID twarzy, dla której należy zaktualizować wierzchołki.

Wartość domyślna: ""
ids: Array

Lista nowych, stabilnych identyfikatorów wierzchołków do użycia dla danego oblicza.

Wartość domyślna: ""

Zwroty

()

SetNormal

()

Ustaw normalny dla normalnego ID. Zmieni to normalną wartość dla każdego punktu na twarzy, który używa normalnego ID.

Parametry

normalId: number

Stabilny normalny ID, dla którego ustawiono normalny wektor.

Wartość domyślna: ""
normal: Vector3

Normalny wektor do ustawienia.

Wartość domyślna: ""

Zwroty

()

SetPosition

()

Ustawia pozycję wierzchołka w przestrzeni lokalnego obiektu sieci.

Parametry

vertexId: number

Stabilny identyfikator wierzchołka wierzchołka do pozycji.

Wartość domyślna: ""

Pozycja w przestrzeni obiektu lokalnego w siatce.

Wartość domyślna: ""

Zwroty

()

SetUV

()

Ustawia koordynaty UV dla ID UV.

Parametry

uvId: number

ID UV, dla którego ustawić należy koordynaty UV.

Wartość domyślna: ""

Koordynaty UV.

Wartość domyślna: ""

Zwroty

()

Triangulate

()

Rozdziela wszystkie twarze na siatce na trójkąty.Obecnie nie robi to nic, ponieważ można tworzyć tylko trójkąty, ale jeśli twój kod polega na trójkątach, zaleca się, abyś wezwał tę metodę po wezwaniu AssetService:CreateEditableMeshAsync() .


Zwroty

()

Zdarzenia