BasePlayerGui
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
BasePlayerGui, tüm GUI çizim saklama sınıflarından miras aldığı bir abstrakt sınıf.
Özet
Özellikler
Yöntemler
Ekranda belirlenen noktayı işgal eden tüm GuiObject instanslarının bir listesini içerir.
Özellikler
Yöntemler
GetGuiObjectsAtPosition
Ekran pozisyonu alır ve bu ekran pozisyonunu işgal eden tüm GuiObject instanslarının listesini içerir, her biri ilk ve son sırayla ekran sırasından üstteki ilk ve son sıraya göre sıralanmıştır.
Ana kullanım durumu, GUI nesnelerini oyuncunun farenin veya dokunuş girişleri altında oluşturmak, birkaç şeyi yapmak için izin vermek veya vurgulamak gibi işlemleri yapmak içindir. Bu etkileri GuiObject.MouseEnter ve GuiObject.MouseLeave kullanarak
Class.BasePlayerGui çocuk sınıfları bu işlevi miras aldığından, PlayerGui ve StarterGui klasörleri gibi klas objeleri tarafından başlatılabilir.
Parametreler
Class.GuiService:GetGuiInset()|GuiInset uygulandıktan sonra ekranda sol üst köşedeki x pozisyonu.
Class.GuiService:GetGuiInset()|GuiInset uygulandıktan sonra ekranda sol üst köşedeki y pozisyonu.
Dönüşler
Class.GuiObject instanslarının verilen ekran alanını kaplayan kaynağın bir tablosu.
Kod Örnekleri
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)