BasePlayerGui

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat

The BasePlayerGui adalah kelas abstrak yang semua kelas pembuatan gambar GUI mewarisi dari.

Properti

Metode

GetGuiObjectsAtPosition

Instances

Mengambil posisi layar dan mengembalikan daftar semua GuiObject instans yang mengambil posisi layar tersebut, diurutkan dalam urutan yang mereka tampilkan di layar dari atas ke bawah sebagai indeks pertama dan terakhir, masing-masing.

Kasus penggunaan utama adalah mendapatkan objek GUI di bawah mouse pemain atau tombol sentuh untuk melakukan hal-hal seperti mengizinkan pemilihan atau menyoroti. Efek ini dapat déjà dicapai menggunakan GuiObject.MouseEnter dan GuiObject.MouseLeave tetapi ini memerlukan pengembang untuk melacak ac

Karena anak kelas BasePlayerGui mewarisi fungsi ini, itu dapat diaktifkan oleh objek kelas seperti PlayerGui dan StarterGui klas.

Parameter

Posisi x di layar relatif terhadap sudut atas kiri setelah Class.GuiService:GetGuiInset()|GuiInset diterapkan.

Posisi y di layar relatif terhadap sudut atas kiri setelah GuiInset diterapkan.


Memberikan nilai

Instances

Tabel dari GuiObject instans yang mengambil ruang layar yang diberikan.

Contoh Kode

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)

Acara