Pozycjonowanie i skalowanie obiektów UI

*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.

Chyba że obiekty UI są pod kontrolą struktury layout lub modyfikatora rozmiaru, masz pełną kontrolę nad ich pozycją i 2>rozmiarem2>. Możesz również ustawić kolejność 5>nadruku5>, w której obiekty się 8>nadlądują8>.

Właściwości rdzenia

Wszystkie GuiObjects dzielą się zasobami w rdzeniu w pozycji, rozmiarze, 1>zakotwiczeniem1> i 4>warstwą4> nich w kontenerze na ekranie lub w doświadczeniu.

Pozycja

Właściwość Position jest zestawem koordynatów UDim2, które pozycjonuje obiekt wzdłuż osi X i 1>Y1>. A 4> Datatype.UDim2

  • Scale wartości przedstawiają procentowy udział rozmiaru kontenera wдоł osi odpowiadającej, dodawkowy wszystkich wartości Datatype.UDim.Offset|Offset .
  • Offset wartości przedstawiają ilość pikseli do przeniesienia obiektu na odpowiednim osi, dodawkową dowolnej liczby wartości Scale.

Aby edytować pozycję wybranego GuiObject , kliknij pole Pozycja w oknie Właściwości i wpisz nowy zestaw ustawiać2>Datatype.UDim22>.

Wielkość

Właściwość Size jest zestawem koordynatów UDim2, który rozmiaruje obiekt wzdłuż osi X i 2>Y2>. A 5>Datatype.UDim25> jest reprezentowany

  • Skala — wartości, które reprezentują procent wielkości kontenera wдоłu odpowiedniego osi, dodawane do wszystkich wartości Odległość .
  • Offset — wartości, które represent the object's Pixel rozmiar along the corresponding axis, additive to any Skala wartości.

Aby zmienić rozmiar wybranego GuiObject, kliknij pole Rozmiar w oknie Właściwości i wpisz nowy zestaw ustawiać2>Datatype.UDim22>.

Punkt Anchora

Właściwość AnchorPoint określa punkt pochodzenia od którego obiekt zmienia pozycję i rozmiar. Domyślne wartości Class.GuiObject.AnchorPoint są 1>2> (0, 0)2> .

AnchorPoint wartości są frakcją z 0

Aby zobaczyć i edytować punkt ankietowania wybranego GuiObject :

  1. W Oknie Proprietści, kliknij w pole AnchorPoint .

  2. Wprowadź nową Vector2 koordynatę i naciśnij Enter.

Zaindeksowanie

Właściwość ZIndex określa kolejność poziomów, w której GuiObjects renderuje się i pojawia się nawzajem. Jeśli chcesz stworzyć nowe poziomy renderowania, musisz ustawić ZIndex wartość pozytywnej lub ujemnej liczby dla każdego obiektu.

Dla kontenerów UI, takich jak ScreenGui, domyślny ZIndexBehavior zawsze renderuje dzieci nad ich rodzicami, a każde dziecko ma ZIndex, aby zdecydować porządek, w jaki wyświetla się nad innymi.

Aby edytować obiektu ZIndex , lokalizuj ZIndex w oknie Właściwości i wpisz nową wartość liczbową.

Struktury布局

Struktury layoutu pozwalają szybko zorganizować i wyświetlić GuiObjects, na przykład w pionowej lub poziomej liście , równolegle rozmieszczonej płytki lub 2>stronie sequencji2> i więcej. Struktury zwykle przeciwstawiają lub wpływają na po

LokalizacjaOpis
ListaUIListLayout pozycje siostrzane GuiObjects w rzędach poziomych lub kolumnach wertykalnych w ich obszarze rodzicielskim.
KolejkaUIGridLayout pozycje siostrzane GuiObjects w grillu komórek jednolitych wielkości w ich pojemniku rodzicielskim.
TabelaUITableLayout pozycje siostrzane GuiObjects i ich dzieci w formie tabeli.
Strona głównaUIPageLayout zorganizowuje jego siostrzane GuiObjects na unikalnych stronach, które możesz przejść poprzez skryptowanie.

Czynniki krzyżowo-platformowe

Roblox jest wrodzonym krzyżowym platformowym, ponieważ gracze mogą odkryć i dołączyć do doświadczeń na PC lub konsoli, a następnie podnieść telefon i kontynuować, gdzie zakończyli. Powinieneś zaprojektować swoje doświadczenia Roblox, aby były one dostępne i przyjemne na wszystkich platformach, które wybierasz, aby wspierać, zamiast optymalizować dla jednej platformy

Zakazane strefy

Na urządzeniach mobilnych domyślne sterowanie zajmuje część lewego dołu i prawego dołu ekranu. Gdy projektujesz interfejs użytkownika doświadczenia, unikaj umieszczania ważnych informacji lub przycisków wizualnych w tych obszarach.

Strefy Miniatur

Większość gier na urządzeniach mobilnych używa dwóch palców — jeden na wirtualnym joysticku i jeden na przycisku skoku. W zależności od fizycznych rozmiarów urządzenia i rąk gracza, dotrzenie zbyt daleko do kątów dolnych staje się niekomfortowe lub nie możliwe, więc powinieneś unikać umieszczania często używanych przycisków poza łatwo dostępnymi obszarami.


Pamiętaj, że wygodne strefy dłoni różnią się między telefonami i tabletami, ponieważ tabletki mają większy ekran. Przycisk umieszczony 40% poniżej górnej krawędzi ekranu jest osiągalny na telefonie, ale prawie niedostępny na tablecie.

Nadёжnym podejściem na obu telefonach i tabletach jest relatywne położenie przycisków niestandardowych w pobliżu często używanych sterowisk, takich jak domyślny przycisk skoku, umieszczonych w łatwo dostępnym miejscu.

Poniższy kod, umieszczony w skrypcie strony klienta w StarterPlayerScripts, pobiera pozycję przycisku skoku i tworzy miejsceholderowy przycisk button o wielkości 20 pikseli po lewej stronie.

Skrypt Klienta - Personalizowany Przycisk Blisko Przycisku Skoku

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
if UserInputService.TouchEnabled then
-- Poczekaj, aż przycisk skoku zostanie w pełni załadowany
while not (playerGui:FindFirstChild("JumpButton", true) and playerGui:FindFirstChild("JumpButton", true).IsLoaded) do
task.wait()
end
local jumpButton = playerGui:FindFirstChild("JumpButton", true)
-- Umieść nowy niestandardowy przycisk po lewej stronie przycisku skoku
local customButton = Instance.new("ImageButton")
customButton.AnchorPoint = Vector2.new(1, 1)
customButton.Size = UDim2.fromOffset(jumpButton.Size.X.Offset * 0.8, jumpButton.Size.Y.Offset * 0.8)
customButton.Position = jumpButton.Position + UDim2.fromOffset(-20, jumpButton.Size.Y.Offset)
customButton.Parent = jumpButton.Parent
else
warn("Device is not touch-enabled or Studio is not emulating a touch-enabled device!")
end

Interfejs oparty na kontekście

Przestrzeń ekranu jest ograniczona na urządzeniach mobilnych, więc powinieneś pokazać tylko najważniejsze informacje podczas rozgrywkaw życiu. Na przykład, jeśli twoje doświadczenie zawiera specjalną akcję wejścia, aby otworzyć drzwi i skrzynie skarbów, nie ma sensu stale pokazywanie przycisku otwarty na ekranie. Zamiast tego użyj met

Niestandardowy przycisk, który pokazujesz tylko, gdy postać jest blisko drzwi lub skrzyni