BasePlayerGui

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

BasePlayerGui jest klasą abstraktną, do której wszystkie klasy przechowywania rysunków GUI dziedziczą.

Właściwości

Metody

GetGuiObjectsAtPosition

Instances

Zdjęcie pozycji ekranu i zwraca listę wszystkich instancji GuiObject , które zajmują tę pozycję ekranu, sortowane według kolejności pojawienia się na ekranie od góry do dołu jako pierwszy i ostatni indeks, odpowiednio.

Głównym przypadkiem użycia jest uzyskanie obiektów GUI pod maus lub dotykowych wpisów, aby zrobić rzeczy, takie jak umożliwienie wyboru lub podświetlenia. Te efekty można już osiągnąć używając GuiObject.MouseEnter i GuiObject.MouseLeave, ale wymaga to, aby rozwickoper śledził te wydarzenia przez

Ponieważ dzieci klas BasePlayerGui dziedziczają tę funkcję, można ją uruchomić przez obiekty klasy, takie jak PlayerGui i StarterGui foldery.

Parametry

Po nakładaniu GuiInset po lewej górnej krawędzi ekranu wysokość x jest ustawiona.

Po nakładaniu GuiInset po lewej górnej krawędzi ekranu następuje przesunięcie pozycji y względem lewej górnej krawędzi ekranu po nakładaniu Class.GuiService:GetGuiInset()|GuiInset.


Zwroty

Instances

Tabela instancji GuiObject, które zajmują podany obszar ekranu.

Przykłady kodu

Selecting GUIs at a Position

local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a Folder and ScreenGui to contain the highlight Frames
local highlights = Instance.new("Folder")
highlights.Name = "Highlights"
highlights.Parent = playerGui
local highlightsContainer = Instance.new("ScreenGui")
highlightsContainer.Name = "Container"
highlightsContainer.Parent = highlights
highlightsContainer.DisplayOrder = 99999
-- Creates a semi-transparent yellow Frame on top of the gui with the same AbsoluteSize and AbsolutePosition
local function highlightAsFrame(gui)
local highlight = Instance.new("Frame")
highlight.Name = "Highlight"
highlight.Parent = highlightsContainer
highlight.Size = UDim2.new(0, gui.AbsoluteSize.X, 0, gui.AbsoluteSize.Y)
highlight.Position = UDim2.new(0, gui.AbsolutePosition.X, 0, gui.AbsolutePosition.Y)
highlight.BackgroundColor3 = Color3.fromRGB(255, 255, 10) -- Yellow
highlight.BackgroundTransparency = 0.75
highlight.BorderSizePixel = 0
highlight.LayoutOrder = gui.LayoutOrder - 1
end
-- Use GetGuiObjectsAtPosition to get and highlight all GuiObjects at the input's position
local function highlightGui(input, _gameProcessed)
local pos = input.Position
local guisAtPosition = playerGui:GetGuiObjectsAtPosition(pos.X, pos.Y)
highlightsContainer:ClearAllChildren()
for _, gui in ipairs(guisAtPosition) do
if gui:IsA("GuiObject") then
highlightAsFrame(gui)
end
end
end
-- Fire highlightGui on InputBegan if input is of type MouseButton1 of Touch
local function InputBegan(input, gameProcessed)
local inputType = input.UserInputType
local touch = Enum.UserInputType.Touch
local mouse1 = Enum.UserInputType.MouseButton1
if inputType == touch or inputType == mouse1 then
highlightGui(input, gameProcessed)
end
end
UserInputService.InputBegan:Connect(InputBegan)

Zdarzenia