GuiObject
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
GuiObject bir 2D kullanıcı arayüzü nesnesidir. Tüm grafik kullanıcı arayüzü nes
Özel GUI nesnelerinin dizaynını özelleştirmek için, list/flex veya grid gibi bir dizayn yapısını kullanabilirsiniz ve onları görünüm modifikatörleri aracılığıyla özelleştirebilirsiniz.
Herhangi bir GUI nesnesinde tıklama butonu olaylarını InputBegan ve InputEnded kullanarak tespit etmek mümkündür, ancak sadece Class.ImageButton ve
Özet
Özellikler
Bu UI öğesi girişi batırır mı belirler.
GuiObject 'nin mutlak büyüklüğüne göre kaynağını belirler.
Çocuk içeriğine dayalı olarak yeniden boyutlandırma olup olmadığını belirler.
Class.GuiObject arka plan rengini belirler.
Class.GuiObject arka planı ve sınırının transparansını belirler.
GuiObject sınırının rengini belirler.
Class.GuiObject sınırının boyutlarına göre ne şekilde çizildiğini belirler.
GuiObject sınırının piksel genişliğini belirler.
Bir ebeveyn GUI öğesi dışındaki çizgi şu şekilde olmalıdır: GuiObjects
oyuncumouse'unun aktif olarak GuiObject üzerine basılı olup olmadığını belirler.
Class.GuiButton ile etkileşime geçilebilir mi yoksa değil, GuiState ile GuiObject arasındaki şekli değiştirilebilir mi yoksa değil.
Class.UIGridStyleLayout ile kullanıldığında UIGridStyleLayout 'in sıralama düzenini kontrol eder.
Oyun aracı seçici aşağıya hareket ettirildiğinde seçilecek GuiObject ı ayarlar.
Oyun aracı seçici sola hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Oyun aracı seçici sağa hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Oyun aracı seçici yukarı hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Class.GuiObject 'in piksel ve skalar pozisyonunu belirler.
Class.GuiObject döndürülmesinin oluğunu belirler.
Oyunpad tarafından seçilebilir GUI ile seçilebilir olup olmadığını belirleyin.
Oyunpadlar için kullanılan varsayılan seçim süslemesini geçersiz kılar.
Oyunpad seçiminin seçtiği GuiObjects sırası.
GuiObject 'in piksel ve skalar boyutlarını belirler.
Class.GuiObject ebeveyninin boyutuna göre GuiObject üzerine inşa edilecek Class.GuiObject.Size|Size eksenlerini ayarlar.
Class.GuiObject.BackgroundTransparency|BackgroundTransparency ile TextTransparency arasındaki karışık bir özellik.
Class.GuiObject ve onun çıplaklarının renderlenmesine izin verir.
Class.GuiObject ile ilgili diğerlerine göre şekillendirilen sırayı belirler.
Bir UI öğesinin gerçek ekran pozisyonunu, piksel olarak açıklar.
Bir UI öğesinin asıl ekran dönüşümünü, dereceler olarak açıklar.
Bir UI öğesi'nin aslındaki ekran büyüklüğünü,像 olarak tanımlar.
Açık olarak ayarlandığında, yerelleştirme bu GuiBase2d ve onun aşağıdaki soyundaki tüm benzerlerine uygulanacaktır.
Bu GuiBase2d ve onun aşağıdaki soyundaki otomatik yerelleştirmeyi uygulamak için kullanılan bir referans.
Aşağı yönlü gamepad seçimi davranışını özelleştirir.
Sol yönlü gamepad seçimi davranışını özelleştirir.
Oyun direği seçim davranışını özelleştirir.
Yukarı yönlendirme içinde oyun aracı seçim davranışını özelleştirir.
Oyun başlantısı seçimi hareketinin özelleştirilmesini sağlar.
Yöntemler
- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir UDim2 'a düzgün bir şekilde hareket ettirir.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir UDim2 ile otomatik olarak yeniden boyutlandırır.
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir boyuta ve konuma hızlıca hareket ettirir.
Etkinlikler
Bir kullanıcı, Bir insan-bilgisayar arayüzü cihazı (Farenin aşağısına basma, dokunma başlangıcı, klavye düğmesine aşağı, vb) ile etkileşime geçmeye başladığında oluşturuldu.
Bir kullanıcı, bir Human-Computer Interface cihazı (Mouse button down, touch begin, keyboard button down, etc) aracılığıyla etkileşim kurarken ateşlenir.
Bir kullanıcı, Bir İnsan-Bilgisayar Arayüzü cihazı (Farenin aşağısına gitmesi, dokunma başlangıcı, klavye düğmesi vb.) kullanımını bıraktığında başlatıldı.
Bir kullanıcının mouse'ını bir GUI öğesine hareket ettirince ateş eder.
Bir kullanıcı, farelerini bir GUI öğesinden çıkarırsa ateş eder.
Bir kullanıcının fareini GUI elemanının içinde hareket ettirirken herhangi bir zaman ateş eder.
Bir kullanıcı, fare yüzdesi aştığında, fareyi GUI öğesi üzerinde olduğunda geri çevirir.
Bir kullanıcı, fareyi bir GUI öğesi üzerinde olduğunda ileriye çektiğinde ateş eder.
Gamepad seçici ile GuiObject'e odaklanıldığında yanıyor.
Gamepad seçici Gameui'yu odaklanmaktan vazgeçtiğinde yanıyor.
Oyuncu başladığında, devam ettiğinde ve UI öğesi üzerinde uzun basılı tutulduğunda ateşlenir.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Oyuncu parmaklarını UI elemanında hareket ettirirken ateş eder.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Oyuncu iki parmak kullanarak bir çıkarma veya çekme hareketini yaptığında ateş eder.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Oyuncu iki parmak kullanarak döndürme hareketi yaptığında ateş eder.
Oyuncu UI elementinde bir swipe hareketi yaptığında ateş eder.
Oyuncu UI elementinde bir dokunma hareketi yaptığında ateş eder.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Gamepad seçimi hareket ettiğinde, ayrıldığında veya bağlı GuiBase2d'de veya ilgili herhangi bir GuiObjeleri değiştirdiğinde ateş eder.
Özellikler
Active
Bu özellik, bu GuiObject ın çekirdek modelleri gibi 3D alanına girecek girişleri belirler, tıpkı ClickDetector gibi aktif bir UI elemanının üzerinde fareyi gezdiren oyuncular gibi. Diğer bir deyişle, oyuncu aktif bir UI elemanına fare
For GuiButton 对象 ( ImageButton ve Class.TextButton
Kod Örnekleri
-- Place this LocalScript within a TextButton (or ImageButton)
local textButton = script.Parent
textButton.Text = "Click me"
textButton.Active = true
local function onActivated()
-- This acts like a debounce
textButton.Active = false
-- Count backwards from 5
for i = 5, 1, -1 do
textButton.Text = "Time: " .. i
task.wait(1)
end
textButton.Text = "Click me"
textButton.Active = true
end
textButton.Activated:Connect(onActivated)
AnchorPoint
AnchorPoint özelliği, bir GuiObject ın kesin boyutlarına dayanan orijinal noktasını belirler. Orijinal nokta, öğenin yerini belirlemek için (GuiObject.Position aracılığıyla) yerleştirildiği yerden belirlenir. İçindeki öğelerin boyutlarını
Açıklık ve ayrıntılar için buraya bakın.
Kod Örnekleri
local guiObject = script.Parent
while true do
-- Top-left
guiObject.AnchorPoint = Vector2.new(0, 0)
guiObject.Position = UDim2.new(0, 0, 0, 0)
task.wait(1)
-- Top
guiObject.AnchorPoint = Vector2.new(0.5, 0)
guiObject.Position = UDim2.new(0.5, 0, 0, 0)
task.wait(1)
-- Top-right
guiObject.AnchorPoint = Vector2.new(1, 0)
guiObject.Position = UDim2.new(1, 0, 0, 0)
task.wait(1)
-- Left
guiObject.AnchorPoint = Vector2.new(0, 0.5)
guiObject.Position = UDim2.new(0, 0, 0.5, 0)
task.wait(1)
-- Dead center
guiObject.AnchorPoint = Vector2.new(0.5, 0.5)
guiObject.Position = UDim2.new(0.5, 0, 0.5, 0)
task.wait(1)
-- Right
guiObject.AnchorPoint = Vector2.new(1, 0.5)
guiObject.Position = UDim2.new(1, 0, 0.5, 0)
task.wait(1)
-- Bottom-left
guiObject.AnchorPoint = Vector2.new(0, 1)
guiObject.Position = UDim2.new(0, 0, 1, 0)
task.wait(1)
-- Bottom
guiObject.AnchorPoint = Vector2.new(0.5, 1)
guiObject.Position = UDim2.new(0.5, 0, 1, 0)
task.wait(1)
-- Bottom-right
guiObject.AnchorPoint = Vector2.new(1, 1)
guiObject.Position = UDim2.new(1, 0, 1, 0)
task.wait(1)
end
AutomaticSize
Bu özellik, aşağıdaki nesillerin boyutuna göre ebeveyn UI objelerinin otomatik olarak boyutlandırılması için kullanılır. Bu özellik, düzenleme veya çalışma zamanında UI'ye metin ve diğer içerik eklemek için dinamik olarak metni ve diğer içerikleri ayarlar ve boyut ayarlanır.
AutomaticSize değeri Enum.AutomaticSize değerine ayarlandığında, bu UI öğesi çocuk içeriğine bağlı olarak yeniden boyutlandırılabilir.
Bu özelliğin nasıl kullanılacağı ve işlediği hakkında daha fazla bilgi için buraya bakın.
Kod Örnekleri
-- Array of text labels/fonts/sizes to output
local labelArray = {
{ text = "Lorem", font = Enum.Font.Creepster, size = 50 },
{ text = "ipsum", font = Enum.Font.IndieFlower, size = 35 },
{ text = "dolor", font = Enum.Font.Antique, size = 55 },
{ text = "sit", font = Enum.Font.SpecialElite, size = 65 },
{ text = "amet", font = Enum.Font.FredokaOne, size = 40 },
}
-- Create an automatically-sized parent frame
local parentFrame = Instance.new("Frame")
parentFrame.AutomaticSize = Enum.AutomaticSize.XY
parentFrame.BackgroundColor3 = Color3.fromRGB(90, 90, 90)
parentFrame.Size = UDim2.fromOffset(25, 100)
parentFrame.Position = UDim2.fromScale(0.1, 0.1)
parentFrame.Parent = script.Parent
-- Add a list layout
local listLayout = Instance.new("UIListLayout")
listLayout.Padding = UDim.new(0, 5)
listLayout.Parent = parentFrame
-- Set rounded corners and padding for visual aesthetics
local roundedCornerParent = Instance.new("UICorner")
roundedCornerParent.Parent = parentFrame
local uiPaddingParent = Instance.new("UIPadding")
uiPaddingParent.PaddingTop = UDim.new(0, 5)
uiPaddingParent.PaddingLeft = UDim.new(0, 5)
uiPaddingParent.PaddingRight = UDim.new(0, 5)
uiPaddingParent.PaddingBottom = UDim.new(0, 5)
uiPaddingParent.Parent = parentFrame
for i = 1, #labelArray do
-- Create an automatically-sized text label from array
local childLabel = Instance.new("TextLabel")
childLabel.AutomaticSize = Enum.AutomaticSize.XY
childLabel.Size = UDim2.fromOffset(75, 15)
childLabel.Text = labelArray[i]["text"]
childLabel.Font = labelArray[i]["font"]
childLabel.TextSize = labelArray[i]["size"]
childLabel.TextColor3 = Color3.new(1, 1, 1)
childLabel.Parent = parentFrame
-- Visual aesthetics
local roundedCorner = Instance.new("UICorner")
roundedCorner.Parent = childLabel
local uiPadding = Instance.new("UIPadding")
uiPadding.PaddingTop = UDim.new(0, 5)
uiPadding.PaddingLeft = UDim.new(0, 5)
uiPadding.PaddingRight = UDim.new(0, 5)
uiPadding.PaddingBottom = UDim.new(0, 5)
uiPadding.Parent = childLabel
task.wait(2)
end
BackgroundColor3
Bu özellik, bir GuiObject arka planının rengini belirler (doldurma rengi). Eğer öğenizdeki bir yazı varsa, örneğin bir TextBox , TextButton veya 1> Class.TextLabel1> , arka planınızın rengiyle aynı olmalıdır.
Arka planın görsel özelliklerini belirleyen başka bir özellik de GuiObject.BackgroundTransparency ; eğer bu 1 olarak ayarlandıysa, hem arka plan hem de sınır renderi yapmaz.
Ayrıca bakın BorderColor3.
Kod Örnekleri
-- Put this code in a LocalScript in a Frame
local frame = script.Parent
while true do
for hue = 0, 255, 4 do
-- HSV = hue, saturation, value
-- If we loop from 0 to 1 repeatedly, we get a rainbow!
frame.BorderColor3 = Color3.fromHSV(hue / 256, 1, 1)
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, 0.5, 0.8)
task.wait()
end
end
BackgroundTransparency
Bu özellik, GuiObject arka planı ve sınırının transparansını belirler. Bu, GUI bir TextBox , TextButton veya 2>
Bu özellik 1 olarak ayarlandıysa, arka plan veya sınır görünmez olacak ve GUI arka planının tamamen透明 olması sağlanacaktır.
BorderColor3
Çizgili kenarın rengini belirler (genellikle çizgi rengi olarak bilinir). Bu, nesnenin Class.GuiObject.BackgroundColor3 özelliği ile ayrılır. 8 ile nesnenin kenarını göremazsınız. 1> 11 ile nesnenin kenarını göreb
Not edin ki UIStroke bileşen daha gelişmiş sınır efektlerine izin verir.
Kod Örnekleri
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
BorderMode
Bu özellik, GuiObject sınırının boyutlarına kıyasla bakrak olarak Enum.BorderMode kullanarak yerleştirildiğini belirtir.
Class.UIStroke'un bu özellik üzerinde çözgü olabilir ve daha gelişmiş sınır efektlerine izin verebilir.
BorderSizePixel
Bu özellik, GuiObject sınırının, piksel olarak ne kadar geniş olduğunu belirler. Bu değeri 0 olarak ayarlayarak, sınırın tümüne erişiminizi devre dışı bırakırsınız.
Class.UIStroke'un bu özellik üzerinde çözgü olabilir ve daha gelişmiş sınır efektlerine izin verebilir.
Kod Örnekleri
-- Put me inside some GuiObject, preferrably an ImageButton/TextButton
local button = script.Parent
local function onEnter()
button.BorderSizePixel = 2
button.BorderColor3 = Color3.new(1, 1, 0) -- Yellow
end
local function onLeave()
button.BorderSizePixel = 1
button.BorderColor3 = Color3.new(0, 0, 0) -- Black
end
-- Connect events
button.MouseEnter:Connect(onEnter)
button.MouseLeave:Connect(onLeave)
-- Our default state is "not hovered"
onLeave()
ClipsDescendants
Bu özellik, GuiObject 'in dış kenarlarda görünmez hale getireceği kalıcı GUI öğelerinin herhangi bir kısmını kesip kesmez (görünmez hale getirir) belirler.
Not that GuiObject.Rotation bu özellik tarafından desteklenmiyor. Bu veya ataları GUI'lerinin bir non-zero GuiObject.Rotation ile destekleniyorsa, bu özellik görüntülenir ve aşağıdaki GUI elemanları değerine bağlı olarak görüntülenir.
Interactable
Class.GuiButton ile etkileşime geçilebilir mi yoksa değil, GuiState ile GuiObject arasındaki şekli değiştirilebilir mi yoksa değil.
Bir GuiButton üzerinde:
- Class.GuiButton üzerindeki GuiButton ayarı false olarak ayarlandığında, 1>Class.GuiButton1> artık basılabilir veya tıklanabilir değildir ve 4>
- Class.GuiButton üzerindeki GuiButton ayarı true olarak belirlenmişken, 1> Class.GuiButton1> normal olarak davranır ve 4> Class.GuiObject.GuiState|GuiState4> normal olarak davranır.
Bir GuiObject üzerinde:
- Class.GuiButton üzerindeki GuiButton ayarı false olarak belirlenmişken, 1>Class.GuiObject.GuiState|GuiState1> sürekli olarak 4> Envanter.GuiState.NonInteractable|NonInteractable4> olarak ayarlanacaktır.
- Class.GuiButton üzerindeki GuiButton ayarı true olarak belirlenmişken, 1> Class.GuiObject.GuiState|GuiState1> normal olarak davranır.
LayoutOrder
Bu özellik, bir GuiObject (örneğin, UIGridStyleLayout veya UIListLayout gibi) kullanıyorsa 2>Sıralama2> düzenini kont
GuiObjectslar, daha düşük değerlerin yüksek değerlerin üstünde önceliği alması nedeniyle yükselenme sırasında sıralanır. Eşit değerleri olan nesneler eklenen sıraya döner.
Gelecekteki iki mevcut eleman arasında bir eleman eklemek gerektiğinden emin değilseniz, 100 (0 , 100 , 1> 2001> vb.) ile katlar kullanarak geniş bir yazı tipi alanı sağlayabilirsiniz. Bu, diğer eleman
Ayrıca, ZIndex ı görüntülenme sırasını belirleyen, sıralama sırası yerine nesnenin rendering sırasını belirleyen öğedir.
NextSelectionDown
Bu özellik, kullanıcının oyunpad'i seçerken seçili GuiObject değerini ayarlar. Bu özellik boşsa, oyunpad'i aşağı hareket ettirerek seçili GUI'yi değiştirmez.
Gamepad seçiciyi aşağıya hareket ettirerek GuiService.SelectedObject bu objeyi GUI olmadan bu objete ayarlar. GUI'nin Selectable olmadığı durumda bu özellik değerini garanti ettiğinizden emin olun. Not edin ki bu özellik değeri bir
Ayrıca bakın NextSelectionUp , NextSelectionLeft ve NextSelectionRight .
Kod Örnekleri
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionLeft
Bu özellik, kullanıcının oyunpad'i seçiciyi sola hareket ettirdiğinde seçili GuiObjectyı ayarlar. Bu özellik boşsa, oyunpad'i sola hareket ettirerek seçili GUI'yi değiştirmez.
Gamepad seçiciyi sola hareket ettirerek GuiService.SelectedObject bu objeyi GUI olmadan bu objete ayarlar. GUI'nin Selectable olmadığı durumda bu özellik değerini garanti ettiğinizden emin olun. GUI'nin seçili özelliğinin değeri
Ayrıca bakın NextSelectionUp , NextSelectionDown ve NextSelectionRight .
Kod Örnekleri
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionRight
Bu özellik, kullanıcının oyunpad'i seçiciyi sağa hareket ettirdiğinde seçilen GuiObject öğesini ayarlar. Bu özellik boşsa, oyunpad'i sağa hareket ettirerek seçilen GUI'yi değiştirmez.
Oyunpad seçiciyi sağa hareket ettirerek GuiService.SelectedObject bu objeyi GUI olmadan bu objete ayarlar, aksi takdirde bu özellik GUI'nin Selectable olmasını sağlar. GUI'nin seçilebilir özelliğinin değerini garanti etti
Ayrıca bakın NextSelectionUp , NextSelectionDown ve NextSelectionLeft .
Kod Örnekleri
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
NextSelectionUp
Bu özellik, kullanıcının oyun şeçiciyi yukarı hareket ettirirken seçili GuiObjectyı ayarlar. Bu özellik boşsa, oyun şeçiciyi yukarı hareket ettirerek seçili GUI'yı değiştirmez.
Oyunpad seçici yukarı hareketi, GUI'nin GuiService.SelectedObject ına bu öğeyi ayırır, aksi takdirde GUI'nin Selectable ı olmayan bir öğeye ayarlanır. Bu özellik, seçilebilir bir öğenin değerini G
Ayrıca bakınız NextSelectionDown, NextSelectionLeft, NextSelectionRight.
Kod Örnekleri
-- Setup the Gamepad selection grid using the code below
local container = script.Parent:FindFirstChild("Container")
local grid = container:GetChildren()
local rowSize = container:FindFirstChild("UIGridLayout").FillDirectionMaxCells
for _, gui in pairs(grid) do
if gui:IsA("GuiObject") then
local pos = gui.Name
-- Left edge
gui.NextSelectionLeft = container:FindFirstChild(pos - 1)
-- Right edge
gui.NextSelectionRight = container:FindFirstChild(pos + 1)
-- Above
gui.NextSelectionUp = container:FindFirstChild(pos - rowSize)
-- Below
gui.NextSelectionDown = container:FindFirstChild(pos + rowSize)
end
end
-- Test the Gamepad selection grid using the code below
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
GuiService.SelectedObject = container:FindFirstChild("1")
function updateSelection(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
local key = input.KeyCode
local selectedObject = GuiService.SelectedObject
if not selectedObject then
return
end
if key == Enum.KeyCode.Up then
if not selectedObject.NextSelectionUp then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Down then
if not selectedObject.NextSelectionDown then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Left then
if not selectedObject.NextSelectionLeft then
GuiService.SelectedObject = selectedObject
end
elseif key == Enum.KeyCode.Right then
if not selectedObject.NextSelectionRight then
GuiService.SelectedObject = selectedObject
end
end
end
end
UserInputService.InputBegan:Connect(updateSelection)
Position
Bu özellik, bir GuiObject piksel ve skalar pozisyonunu belirlerken UDim2 kullanır. Piyasa merkezi olarak nesnenin GuiObject.AnchorPoint etrafındadır.
Salar pozisyonu, eğer varsa, ebeveyn GUI öğesi boyutuna göre değiştirilebilir.
Datatype.UDim2 değerinin piksel bölümleri, ebeveyn GUI'nin büyüklüğüne bağlı olarak aynıdır. Değerler, pikseldeki nesnenin konumunu temsil eder. Bir nesnenin asıl piksel konumu, GuiBase2d.AbsolutePosition özelliğinden okunabilir.
Rotation
Bu özellik, GuiObject 'in döndürülmesinin kaç derece olduğunu belirler. Döndürme, nesnenin merkezine dayanarak Class.GuiObject.AnchorPoint|AnchorPoint ile, yani döndürme noktasını değiştiremezsiniz, kom
Selectable
Bu özellik, bir oyun cihazı kullanarak GUI'leri gezinti ederken seçilebilir GuiObject ile seçilebilir olup olmadığını belirler.
Bu özellik doğruysa, bir GUI seçilebilir. Seçilen bir GUI'yi seçmek ayrıca GuiService.SelectedObject özelliğini oluşturur.
Bu doğru değilse, GUI seçilemez. Ancak, bir GUI seçildiğinde bu değeri GuiService.SelectedObject özelliğine ayarlayarak seçilmez veya değerini değiştirmez.
Class.GuiObject.SelectionGained ve GuiObject.SelectionLost öğesi için öğe için yanlışlık yapmaz. Bir GuiObjeyi seçmek için GuiService.SelectedObject özelliğini değiştirmeniz gerekir.
Bu özellik, bir GUI'yu birkaç GUI'ye bağlayan özellikler aracılığıyla Class.GuiObject.NextSelectionUp , Class.GuiObj.NextSelectionDown , Class.GuiObj.NextSelectionRight veya Class
Kod Örnekleri
local GuiService = game:GetService("GuiService")
local textBox = script.Parent
local function gainFocus()
textBox.Selectable = true
GuiService.SelectedObject = textBox
end
local function loseFocus(_enterPressed, _inputObject)
GuiService.SelectedObject = nil
textBox.Selectable = false
end
-- The FocusLost and FocusGained event will fire because the textBox
-- is of type TextBox
textBox.Focused:Connect(gainFocus)
textBox.FocusLost:Connect(loseFocus)
SelectionImageObject
Bu özellik, oyun aracıları için kullanılan varsayılan seçim süslemesini geçersiz kılar.
Seçili SelectionImageObject ile seçili GuiObject arasındaki seçilmiş Size ile öğe boyutlandırılır. En iyi sonuçlar için, öğenin ölçeğini 1> Datatype.UDim21> ile aş
Class.GuiObject öğesi için SelectionImageObject değiştirilmesi sadece o öğeyi etkiler. Tüm bir kullanıcının GUI öğelerine etki etmek için, Class.PlayerGui.SelectionImageObject özelliğini ayarlayın.
Kullanıcının hangi GUI öğesi seçildiğini belirlemek veya ayarlamak için, GuiService.SelectedObject özelliğini kullanabilirsiniz. Oyuncu, oyunpad'ı kullanarak farklı
SelectionOrder
Daha düşük bir SeçimSırası ile GuiObjects seçilir, yüksek bir SeçimSırası ile GuiObjects'ın başlangıcında veya GuiService:Select() çağrılırken. Bu özellik yönlendirmeyi etkilemez.Varsayılan değer 0'dır.
Size
Bu özellik, bir GuiObject skalar ve piksel büyüklüğünü kullanarak belirlenen şu özellikleri belirler: UDim2.
Salar boyutu, ebeveyn GUI öğesi boyutuna göre küçüktür, varsa.
Datatype.UDim2 değerinin piksel bölümleri, ebeveyn GUI'nin büyüklüğüne bağlı olarak aynıdır. Değerler, piksel büyüklüğünü temsil eder. Bir nesnenin asıl piksel büyüklüğü GuiBase2d.AbsoluteSize özelliğinden okunabilir.
Class.GuiObjectnın bir ebeği varsa, her eksenin boyutu ayrıca ebeğin SizeConstraint ile etkilenir.
Kod Örnekleri
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Paste script into a LocalScript that is
-- parented to a Frame within a Frame
local frame = script.Parent
local container = frame.Parent
container.BackgroundColor3 = Color3.new(0, 0, 0) -- black
-- This function is called when the humanoid's health changes
local function onHealthChanged()
local human = player.Character.Humanoid
local percent = human.Health / human.MaxHealth
-- Change the size of the inner bar
frame.Size = UDim2.new(percent, 0, 1, 0)
-- Change the color of the health bar
if percent < 0.1 then
frame.BackgroundColor3 = Color3.new(1, 0, 0) -- black
elseif percent < 0.4 then
frame.BackgroundColor3 = Color3.new(1, 1, 0) -- yellow
else
frame.BackgroundColor3 = Color3.new(0, 1, 0) -- green
end
end
-- This function runs is called the player spawns in
local function onCharacterAdded(character)
local human = character:WaitForChild("Humanoid")
-- Pattern: update once now, then any time the health changes
human.HealthChanged:Connect(onHealthChanged)
onHealthChanged()
end
-- Connect our spawn listener; call it if already spawned
player.CharacterAdded:Connect(onCharacterAdded)
if player.Character then
onCharacterAdded(player.Character)
end
SizeConstraint
Bu özellik, Size eksenlerini belirler ki, GuiObject üzerine dayanacakları hakkında, ebeveynlerinin boyutlarına göre.
Bu özellik, bir ebeveyn nesneyin genişliği ile yüksekliği arasındaki skalama için yaratılmış GUI nesneleri oluşturmak için kullanışlıdır, ancak her ikisi de etkili olarak özellik oranını korur.
Transparency
Class.GuiObject.BackgroundTransparency|BackgroundTransparency ile TextTransparency arasındaki karışık bir özellik.
Visible
Bu özellik, GuiObject ve onun çıkışlarının görüntülenmesi olacaktır.
Bir GuiObject 'in bileşenleri, tranzparency özellikleri aracılığıyla bireysel olarak kontrol edilebilir GuiObject.BackgroundTransparency, TextLabel.TextTransparency ve 1>Class.ImageLabel.ImageTransparency1> .
Bu öğün false olduğunda, GuiObject , UIListLayout ve 1> Class.UITableLayout1> gibi yerleşim yapıları tarafından görmezden gelinecektir. Diğer bir deyişle, öğenin normalde yerini alacağı yerleş
Kod Örnekleri
local gui = script.Parent
local window = gui:WaitForChild("Window")
local toggleButton = gui:WaitForChild("ToggleWindow")
local closeButton = window:WaitForChild("Close")
local function toggleWindowVisbility()
-- Flip a boolean using the `not` keyword
window.Visible = not window.Visible
end
toggleButton.Activated:Connect(toggleWindowVisbility)
closeButton.Activated:Connect(toggleWindowVisbility)
ZIndex
Bu özellik, bir GuiObject ın diğerlerine göre hangi sırayla görüntülenmesini sağlar.
Varsayılan olarak, GuiObjects``ZIndex değerlerine sahip olanların önceliği yükseltilmiş önceliği olanların üzerinde ortaya çıkarılır. Class.ScreenGui
Gelecekteki iki mevcut öğeler arasında bir eleman eklemek ihtiyacınız olduğundan emin değilseniz, bu iki öğenin çift katına kadar kullanmak iyi bir pratikdir. ( 100 ( 0 , 100 , 1> 200
Ayrıca, LayoutOrder , bir sıralama düzeninin GuiObject sırasını kontrol eden bir 12> Class.GuiObject2> ile kullanıldığında, bir 5>sıralama5> düzenini kullanıyorsa, bir 8>sıralama8> düzenini kull
Yöntemler
TweenPosition
Yeni bir UDim2 pozisyonuna GUI'yu düzgün bir şekilde hareket ettirir, kullanıcının belirlenen Enum.EasingDirection ve Enum.EasingStyle iletişimini kullanarak.
Bu işlev, tween'in oynayıp oynayacağını döndürecek. GuiObject ve üst çizgi parametresi sahteysa oynayacaktır.
Ayrıca bakınız:
- GuiObject:TweenSize() , gençler bir GUI'nin boyutu
- GuiObject:TweenSizeAndPosition() , gençler bir GUI'nin boyutunu ve konumunu asenkron olarak
Parametreler
GUI'nin nereye hareket etmesi gerektiği.
GUI'yi endPosition yönlendirmesi için kolaylaştırmanın yönü.
GUI'yi endPosition 'e kolaylaştırma stilinde.
tweetin bir kısmını oluşturmak için kaç saniye sürecek.
Eğer tween geliştirmeyi geçersiz kılacak mı?
Çizgi tamamlandığında çalıştırılacak bir dönüşüm işlevi.
Dönüşler
Çizgi film oynayacak mı yoksa hayvanlarını oynayacak mı.
Kod Örnekleri
local START_POSITION = UDim2.new(0, 0, 0, 0)
local GOAL_POSITION = UDim2.new(1, 0, 1, 0)
local guiObject = script.Parent
local function callback(state)
if state == Enum.TweenStatus.Completed then
print("The tween completed uninterrupted")
elseif state == Enum.TweenStatus.Canceled then
print("Another tween cancelled this one")
end
end
-- Initialize the GuiObject position, then start the tween:
guiObject.Position = START_POSITION
local willPlay = guiObject:TweenPosition(
GOAL_POSITION, -- Final position the tween should reach
Enum.EasingDirection.In, -- Direction of the easing
Enum.EasingStyle.Sine, -- Kind of easing to apply
2, -- Duration of the tween in seconds
true, -- Whether in-progress tweens are interrupted
callback -- Function to be callled when on completion/cancelation
)
if willPlay then
print("The tween will play")
else
print("The tween will not play")
end
TweenSize
Güvenli bir şekilde, belirlenen UDim2 ile belirlenen yeni bir GUI'yi, belirlenen Enum.EasingDirection ve Enum.EasingStyle ile yeniden boyutlandırır.
Bu işlev, eğilme oynatacağını gösterir. Normalde bu her zaman doğru olacaktır, ancak başka bir eğilme aktif ve üstesinden geçersiz olacaktır.
Ayrıca bakınız:
- GuiObject:TweenPosition() , gençler bir GUI'nin pozisyonunu
- GuiObject:TweenSizeAndPosition() , gençler bir GUI'nin boyutunu ve konumunu asenkron olarak
Parametreler
GUI'nin yeniden boyutlandırılması gereken boyutu.
GUI'yi endSize yana kolaylaştırmanın yönü.
GUI'yi endSize 'e kolaylaştırma stilinde.
tweetin bir kısmını oluşturmak için kaç saniye sürecek.
Eğer tween geliştirmeyi geçersiz kılacak mı?
Çizgi tamamlandığında çalıştırılacak bir dönüşüm işlevi.
Dönüşler
Çizgi film oynayacak mı yoksa hayvanlarını oynayacak mı.
Kod Örnekleri
local guiObject = script.Parent
local function callback(didComplete)
if didComplete then
print("The tween completed successfully")
else
print("The tween was cancelled")
end
end
local willTween = guiObject:TweenSize(
UDim2.new(0.5, 0, 0.5, 0), -- endSize (required)
Enum.EasingDirection.In, -- easingDirection (default Out)
Enum.EasingStyle.Sine, -- easingStyle (default Quad)
2, -- time (default: 1)
true, -- should this tween override ones in-progress? (default: false)
callback -- a function to call when the tween completes (default: nil)
)
if willTween then
print("The GuiObject will tween")
else
print("The GuiObject will not tween")
end
TweenSizeAndPosition
Güvenli bir şekilde, belirli bir GUI'yu yeni bir UDim2 boyutuna ve pozisyonuna belirli süre içinde belirli bir yere taşır veya hareket ettirir.
Bu işlev, eğilme oynatacağını gösterir. Normalde bu her zaman doğru olacaktır, ancak başka bir eğilme aktif ve üstesinden geçersiz olacaktır.
Ayrıca bakınız:
- GuiObject:TweenSize() , gençler bir GUI'nin boyutu
- GuiObject:TweenPosition() , gençler bir GUI'nin pozisyonunu
Parametreler
GUI'nin yeniden boyutlandırılması gereken boyutu.
GUI'nin nereye hareket etmesi gerektiği.
GUI'yi endSize ve endPosition yönlerine kolaylaştırmak için yönlendirme.
GUI'yi endSize ve endPosition 'e kolaylaştırmak için kullanılan tarz.
tweetin bir kısmını oluşturmak için kaç saniye sürecek.
Eğer tween geliştirmeyi geçersiz kılacak mı?
Çizgi tamamlandığında çalıştırılacak bir dönüşüm işlevi.
Dönüşler
Çizgi film oynayacak mı yoksa hayvanlarını oynayacak mı.
Kod Örnekleri
local frame = script.Parent.Frame
frame:TweenSizeAndPosition(UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0))
Etkinlikler
InputBegan
Bu etkinlik, bir kullanıcının insan-bilgisayar arayüzü cihazı (Mouse button down, touch begin, keyboard button down, vb) ile etkileşime başladığında başlar.
Class.UserInputService ın aynı adımlı etkinliği, belirli bir UI öğesi için sınırlı değildir: UserInputService.InputBegan .
Bu olay her oyun durumuna bağlı olarak her zaman ateşlenir.
Ayrıca bakınız:
Parametreler
Bir InputObject, kullanıcının girişini sorgulamak için yararlı veriler içerir, örneğin type of input, state of input ve 1> Class.InputObjekt.Position|giriş koordinatları1> .
Kod Örnekleri
-- In order to use the InputBegan event, you must specify the GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputBegan(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key is being pushed down! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been pressed down at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has started at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button is being pressed on a gamepad! Button:", input.KeyCode)
end
end
gui.InputBegan:Connect(inputBegan)
InputChanged
Bu etkinlik, bir kullanıcının bir İnsan-Bilgisayar Arayüzü cihazı (Mouse button down, touch begin, keyboard button down, vb) aracılığıyla nasıl etkileşim kurduğunu değiştirdiğinde başlar.
Class.UserInputService'in aynı adımlı etkinliği, belirli bir UI öğesi için sınırlı değildir: UserInputService.InputChanged.
Bu olay her oyun durumuna bağlı olarak her zaman ateşlenir.
Ayrıca bakınız:
Parametreler
Bir InputObject, kullanıcının girişini sorgulamak için yararlı veriler içerir, örneğin type of input, state of input ve 1> Class.InputObjekt.Position|giriş koordinatları1> .
Kod Örnekleri
local UserInputService = game:GetService("UserInputService")
local gui = script.Parent
local function printMovement(input)
print("Position:", input.Position)
print("Movement Delta:", input.Delta)
end
local function inputChanged(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then
print("The mouse has been moved!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.MouseWheel then
print("The mouse wheel has been scrolled!")
print("Wheel Movement:", input.Position.Z)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
if input.KeyCode == Enum.KeyCode.Thumbstick1 then
print("The left thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.Thumbstick2 then
print("The right thumbstick has been moved!")
printMovement(input)
elseif input.KeyCode == Enum.KeyCode.ButtonL2 then
print("The pressure being applied to the left trigger has changed!")
print("Pressure:", input.Position.Z)
elseif input.KeyCode == Enum.KeyCode.ButtonR2 then
print("The pressure being applied to the right trigger has changed!")
print("Pressure:", input.Position.Z)
end
elseif input.UserInputType == Enum.UserInputType.Touch then
print("The user's finger is moving on the screen!")
printMovement(input)
elseif input.UserInputType == Enum.UserInputType.Gyro then
local _rotInput, rotCFrame = UserInputService:GetDeviceRotation()
local rotX, rotY, rotZ = rotCFrame:toEulerAnglesXYZ()
local rot = Vector3.new(math.deg(rotX), math.deg(rotY), math.deg(rotZ))
print("The rotation of the user's mobile device has been changed!")
print("Position", rotCFrame.p)
print("Rotation:", rot)
elseif input.UserInputType == Enum.UserInputType.Accelerometer then
print("The acceleration of the user's mobile device has been changed!")
printMovement(input)
end
end
gui.InputChanged:Connect(inputChanged)
InputEnded
InputEnded etkinliği, bir kullanıcının bir İnsan-Bilgisayar Arayüzü cihazı (Farenin aşağı çekilmesi, dokunma başlangıcı, klavye düğmesi vb.) aracılığıyla etkileşimi sona erdiğinde başlar.
Class.UserInputService ın aynı adımlı etkinliği, belirli bir UI öğesi için sınırlı değildir: UserInputService.InputEnded.
Bu olay her oyun durumuna bağlı olarak her zaman ateşlenir.
Ayrıca bakınız:
Parametreler
Bir InputObject, kullanıcının girişini sorgulamak için yararlı veriler içerir, örneğin type of input, state of input ve 1> Class.InputObjekt.Position|giriş koordinatları1> .
Kod Örnekleri
-- In order to use the InputChanged event, you must specify a GuiObject
local gui = script.Parent
-- A sample function providing multiple usage cases for various types of user input
local function inputEnded(input)
if input.UserInputType == Enum.UserInputType.Keyboard then
print("A key has been released! Key:", input.KeyCode)
elseif input.UserInputType == Enum.UserInputType.MouseButton1 then
print("The left mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.MouseButton2 then
print("The right mouse button has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Touch then
print("A touchscreen input has been released at", input.Position)
elseif input.UserInputType == Enum.UserInputType.Gamepad1 then
print("A button has been released on a gamepad! Button:", input.KeyCode)
end
end
gui.InputEnded:Connect(inputEnded)
MouseEnter
MouseEnter etkinliği, bir kullanıcının mouse'ını bir GUI elemanına hareket ettirdiğinde başlar.
Lütfen bu etkinliğin x ve y 参与çlarının geçtiği saçma bir yol olarak kullanıcının farenin nerede olduğunu belirlemek için kullanılan bu argümanlara güvenmeyin. Bu koordinatlar, aynı kenar aracılı
Bu olay, GUI elemanının başka bir elemanın altında renderlenmesi durumunda bile başlar.
Bir kullanıcının farenin bir GUI elemanından ayrıldığında izlemek istiyorsanız, GuiObject.MouseLeave etkinliğini kullanabilirsiniz.
Ayrıca bakınız:
Parametreler
Farenin x ekran koordinatı, ekranın sol üst köşesine görekte ölçeksel olarak.
Farenin y ekran koordinatı, ekranın sol üst köşesine göre piksel olarak.
Kod Örnekleri
local guiObject = script.Parent
guiObject.MouseEnter:Connect(function(x, y)
print("The user's mouse cursor has entered the GuiObject at position", x, ",", y)
end)
MouseLeave
MouseLeave olayı, bir kullanıcının mouse'ını bir GUI elemanından çıkarttığında başlar.
Lütfen bu etkinliğin x ve y 参与çlarının geçtiği saçma bir yol olarak kullanıcının farenin nerede olduğunu belirlemek için kullanılan bu argümanlara güvenmeyin. Bu koordinatlar, aynı kenar üzerinden ayr
Bu olay, GUI elemanının başka bir elemanın altında renderlenmesi durumunda bile başlar.
Ayrıca bakınız:
Parametreler
Farenin x ekran koordinatı, ekranın sol üst köşesine görekte ölçeksel olarak.
Farenin y ekran koordinatı, ekranın sol üst köşesine göre piksel olarak.
MouseMoved
Bir kullanıcının mouse'ını herhangi bir GUI elemanın içinde hareket ettirirken ateş eder. Bu, kullanıcının mouse'ının GUI elemanının üzerinde olup olmadığına bağlı olarak aynıdır.
Not, bu olay, fare'nin konumu güncellendiğinde başlar, bu nedenle hareket edilirken tekrar başlar.
The x ve y</y> arguments indicate the updated screen coordinates of the user's mouse in pixels. These can be useful to determine the fare's location on the GUI, screen, and delta since the fare's previous position if it is being tracked in a global variable.
Aşağıdaki kod, kullanıcının bir GUI öğesiyle ilgili bir Datatype.Vector2 ofsaytını nasıl belirleyeceğini gösteriyor:
local CustomScrollingFrame = script.Parent
local SubFrame = CustomScrollingFrame:FindFirstChild("SubFrame")
local mouse = game.Players.LocalPlayer:GetMouse()
function getPosition(X, Y)
local gui_X = CustomScrollingFrame.AbsolutePosition.X
local gui_Y = CustomScrollingFrame.AbsolutePosition.Y
local pos = Vector2.new(math.abs(X - gui_X), math.abs(Y - gui_Y - 36))
print(pos)
end
CustomScrollingFrame.MouseMoved:Connect(getPosition)
Not: Bu olay, kullanıcının bir GUI öğesi giripya da çıktığında doğru olarak ateşlenmeyebilir. Bu nedenle, x ve y argumentları, kenetlerin kenetlerine doğru olarak eşleşmeyebilir.
Ayrıca bakınız:
Parametreler
Farenin x ekran koordinatı, ekranın sol üst köşesine görekte ölçeksel olarak.
Farenin y ekran koordinatı, ekranın sol üst köşesine göre piksel olarak.
MouseWheelBackward
Kullanıcı, bir GUI elemanının üzerinde bir fare yüzüğüyle ilgili bir etkinliği oynatırken, bir kullanıcının fare yüzüğünü geri çevirme etkinliği başlar. Bu, kullanıcının fare yüzüğünü GUI elemanının üzerinde oynatırken yapmasına izin verir.
Bu olay sadece tekerleğin arka hareketinin bir göstergesi olarak başlar. Bu, x ve y mouse koordinatlarının bu olay sonucu olarak değişmediğini意味着. Bu koordinatlar sadece fare hareketi ile değişir, which can be tracked by the GuiObject.MouseMoved olayı.
Ayrıca bakınız:
Parametreler
Farenin x ekran koordinatı, ekranın sol üst köşesine görekte ölçeksel olarak.
Farenin y ekran koordinatı, ekranın sol üst köşesine göre piksel olarak.
MouseWheelForward
Class.GuiObject|Gui elemanın üzerindeyken kullanıcının fare yuvarlaklarını ileriye çektiğinde, Mouse.WheelForward etkinleştirilir. Bu, kullanıcının fare yuvarlaklarını GUI elemanının üzerindeyken de etkinleştirir.
Bu olay sadece tekerleğin ileri hareketinin bir göstergesi olarak başlar. Bu, x ve y mouse koordinatlarının bu olay sonucu olarak değişmediğini意味着. Bu koordinatlar sadece fare hareketi hakkında değişir, which can be tracked by the GuiObject.MouseMoved olayı.
Ayrıca bakınız:
Parametreler
Farenin x ekran koordinatı, ekranın sol üst köşesine görekte ölçeksel olarak.
Kullanıcının farenin y koordinatı.
SelectionGained
Bu olay, Gamepad seçici GuiObject üzerinde odaklanmaya başladığında başlar.
Oyunpad'dan kontrol etmek istiyorsanız, GUI öğesi üzerinde duran durumları seçmeyi seçin, GuiObject.SelectionLost etkinliğini kullanabilirsiniz.
Bir GUI seçimi odaklanınca, SelectedObject özelliğinin değeri de seçimi odaklayan değere değiştirilir. Seçimi odaklayan GUI'yu belirlemek için bu özelliğin değerini kontrol edin.
Kod Örnekleri
local guiObject = script.Parent
local function selectionGained()
print("The user has selected this button with a gamepad.")
end
guiObject.SelectionGained:Connect(selectionGained)
SelectionLost
Bu olay, Gamepad seçiciyi GUI üzerinde odaklanmayı bırakınca başlar.
Oyunpad'dan kontrol etmek istiyorsanız, GUI öğesi üzerinde odaklanmaya başlayın, GuiObject.SelectionGained etkinliğini kullanabilirsiniz.
Bir GUI seçimi odaklanırsa, SelectionObject özelliğinin değeri hiçbir zaman seçimi odaklanan GUI'ya veya seçimi kazanan GUI'ya değişir. Seçimi kazanan GUI'yı belirlemek için, veya hiçbir GUI seçilmediyse, bu özelliğin değerini kontrol edin.
Kod Örnekleri
local guiObject = script.Parent
local function selectionLost()
print("The user no longer has this selected with their gamepad.")
end
guiObject.SelectionLost:Connect(selectionLost)
TouchLongPress
Oyunun TouchLongPress etkinliği, oyunun UI öğesi üzerindeki parmakların ilgili ekran pozisyonlarını açıklayan bir Datatype.
Bu olay sadece bir parmak gerektirir, bu olay Studio'da emülatör ve bir fare kullanarak simüle edilebilir.
Parametreler
Bir Enum.UserInputState ile hareketin durumunu açıklayan bir Enum.UserInputState :
- Hareketin başlangıcında yanıyorlar bir kez (kısa gecikmeden sonra)
- Oyuncu parmaklarını aşağıya basarken ateşleri değiştir
- Parmaklarını serbest bıraktığında hareketin sonunda yangınları sona erdir.
Kod Örnekleri
local frame = script.Parent
frame.Active = true
local dragging = false
local basePosition
local startTouchPosition
local borderColor3
local backgroundColor3
local function onTouchLongPress(touchPositions, state)
if state == Enum.UserInputState.Begin and not dragging then
-- Start a drag
dragging = true
basePosition = frame.Position
startTouchPosition = touchPositions[1]
-- Color the frame to indicate the drag is happening
borderColor3 = frame.BorderColor3
backgroundColor3 = frame.BackgroundColor3
frame.BorderColor3 = Color3.new(1, 1, 1) -- White
frame.BackgroundColor3 = Color3.new(0, 0, 1) -- Blue
elseif state == Enum.UserInputState.Change then
local touchPosition = touchPositions[1]
local deltaPosition = UDim2.new(
0,
touchPosition.X - startTouchPosition.X,
0,
touchPosition.Y - startTouchPosition.Y
)
frame.Position = basePosition + deltaPosition
elseif state == Enum.UserInputState.End and dragging then
-- Stop the drag
dragging = false
frame.BorderColor3 = borderColor3
frame.BackgroundColor3 = backgroundColor3
end
end
frame.TouchLongPress:Connect(onTouchLongPress)
TouchPan
Oyuncu bir dokunmatik cihaz kullanarak UI'ye parmaklarını hareket ettiğinde etkinleştirilen olay patlar. Bu olay TouchPan ile önce etkinleştirilecek ve GuiObject.TouchSwipe ile de yanlış yapılabilir. Bu etkinliği, oyuncu ekranda UI elemanları
Bu etkinlik, hareketin içindeki parmakların ilgili ekran pozisyonlarını tarif eden bir tabla ile Vector2 ile başlar. Ayrıca, birkaç kez başlar: Enum.UserInputState.Begin kısa bir bekleyişten sonra, num.UserInputState.Change</
Bu olay, emülatör ve bir fare kullanılarak Studio'da simüle edilemez; ateşlemek için gerçek bir dokunmatik cihazınız olmalıdır.
Parametreler
Bir Lua matrisi, Vector2 nesneleri, her biri hareketin içindeki tüm parmakların konumunu gösteren.
Panosun başlangıç noktasından panosunun ne kadar ilerlediğini gösterir.
Hareketin her boyutta ne kadar hızlı yapıldığını gösterir.
Hareketin Enum.UserInputState'sını gösterir.
Kod Örnekleri
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local basePosition
local function onTouchPan(_touchPositions, totalTranslation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
basePosition = innerFrame.Position
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Position = basePosition + UDim2.new(0, totalTranslation.X, 0, totalTranslation.Y)
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPan:Connect(onTouchPan)
TouchPinch
Oyuncu iki parmak kullanarak UI öğesi üzerinde bir çapa veya çekme hareketi yapmak için iki parmaklara sahip olduğunda etkinleştirilen bir etkinlik ile bağlantı kurar. Bir çapa oluşturulduğunda,
Bu olay, bağlantının parmaklarının hareketiyle ilgili kayıtlı ekran pozisyonlarını açıklayan Vector2 tabelosuyla başlar. Ayrıca, birkaç saniye sonra Enu
Bu olay en az iki parmak gerektirir, bu yüzden emülatör ve bir fare kullanarak Studio'da simüle etmek mümkün değildir; gerçek bir dokunma etkinleştirilmiş cihazınız olmalıdır.
Parametreler
Bir Lua matrisi, Vector2 nesneleri, her biri pinch gesti içindeki tüm parmakların konumunu gösteren bir matris.
Çizgi hareketinin başlangıcından itibaren farkı gösteren bir yüz.
Çıkma işaretinin ne kadar hızlı olduğunu gösteren bir yüz.
Hareketin Enum.UserInputState'sını gösterir.
Kod Örnekleri
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local uiScale = Instance.new("UIScale")
uiScale.Parent = innerFrame
local baseScale
local function onTouchPinch(_touchPositions, scale, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseScale = uiScale.Scale
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
uiScale.Scale = baseScale * scale -- Notice the multiplication here
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchPinch:Connect(onTouchPinch)
TouchRotate
Oyuncu iki parmak kullanarak ezme veya çekme hareketi yapmak için UI cihazdokunma yapıldığında etkinliği TouchRotate tetiklenir. Rotasyon, hattın iki parmak arasındaki açısının değişmesiyle oluşur. Bu etkinliği GuiObject.TouchPan
Bu etkinlik, hareketin içindeki parmakların ilgili ekran pozisyonlarını tarif eden bir tabla ile Vector2 ile başlar. Ayrıca, birkaç kez başlar: Enum.UserInputState.Begin kısa bir bekleyişten sonra, num.UserInputState.Change</
Bu olay en az iki parmak gerektirir, Studio'da emülatör ve bir fare kullanılarak simüle edilemez; gerçek bir dokunma etkinleştirilmiş cihazınız olmalıdır.
Parametreler
Bir Lua matrisi, Vector2 nesneleri, her biri hareketin içindeki tüm parmakların konumunu gösteren.
Döndürmeyi başlangıç noktasından itibaren ne kadar ilerlediğini gösteren bir yüz.
Hareketin ne kadar hızlı yapıldığını gösteren bir yüz.
Hareketin Enum.UserInputState'sını gösterir.
Kod Örnekleri
local innerFrame = script.Parent
local outerFrame = innerFrame.Parent
outerFrame.BackgroundTransparency = 0.75
outerFrame.Active = true
outerFrame.Size = UDim2.new(1, 0, 1, 0)
outerFrame.Position = UDim2.new(0, 0, 0, 0)
outerFrame.AnchorPoint = Vector2.new(0, 0)
outerFrame.ClipsDescendants = true
local dragging = false
local baseRotation = innerFrame.Rotation
local function onTouchRotate(_touchPositions, rotation, _velocity, state)
if state == Enum.UserInputState.Begin and not dragging then
dragging = true
baseRotation = innerFrame.Rotation
outerFrame.BackgroundTransparency = 0.25
elseif state == Enum.UserInputState.Change then
innerFrame.Rotation = baseRotation + rotation
elseif state == Enum.UserInputState.End and dragging then
dragging = false
outerFrame.BackgroundTransparency = 0.75
end
end
outerFrame.TouchRotate:Connect(onTouchRotate)
TouchSwipe
Dokunmatik etkinliği, oyuncu bir dokunmatik cihaz kullanarak UI elementinde bir swipe hareketi yaptığında başlar. Bu, hareketin yönü (Yukarı, Aşağı, Sol veya Sağ) ve hareketin etkili sayısı (Dokunmatik nokta sayısı) ile ilgili yönlendirme olarak yapılır. Dokunmatik etkinlikleri genellikle mobil UIs'lerdeki kartları değiştirmek için k
Bu olay sadece bir parmak gerektirir, Studio'da emülatör ve bir fare kullanılarak simüle edilebilir.
Parametreler
Bir Enum.SwipeDirection ile, hareketin yönünü gösterir (Yukarı, Aşağı, Sol veya Sağ).
Hareketin içinde bulunan dokunma noktalarının sayısı (genellikle 1).
Kod Örnekleri
local frame = script.Parent
frame.Active = true
-- How far the frame should bounce on a successful swipe
local BOUNCE_DISTANCE = 50
-- Current state of the frame
local basePosition = frame.Position
local hue = 0
local saturation = 128
local function updateColor()
frame.BackgroundColor3 = Color3.fromHSV(hue / 256, saturation / 256, 1)
end
local function onTouchSwipe(swipeDir, _touchCount)
-- Change the BackgroundColor3 based on the swipe direction
local deltaPos
if swipeDir == Enum.SwipeDirection.Right then
deltaPos = UDim2.new(0, BOUNCE_DISTANCE, 0, 0)
hue = (hue + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Left then
deltaPos = UDim2.new(0, -BOUNCE_DISTANCE, 0, 0)
hue = (hue - 16) % 255
elseif swipeDir == Enum.SwipeDirection.Up then
deltaPos = UDim2.new(0, 0, 0, -BOUNCE_DISTANCE)
saturation = (saturation + 16) % 255
elseif swipeDir == Enum.SwipeDirection.Down then
deltaPos = UDim2.new(0, 0, 0, BOUNCE_DISTANCE)
saturation = (saturation - 16) % 255
else
deltaPos = UDim2.new()
end
-- Update the color and bounce the frame a little
updateColor()
frame.Position = basePosition + deltaPos
frame:TweenPosition(basePosition, Enum.EasingDirection.Out, Enum.EasingStyle.Bounce, 0.7, true)
end
frame.TouchSwipe:Connect(onTouchSwipe)
updateColor()
TouchTap
Dokunmatik etkinliği, kullanıcının dokunmatik hareketi yapmasının UI elemanında kullanılan bir dokunmatik hareketi yaparak gerçekleşmesi durumunda başlar. Bir dokunmatik hareketi, hareketin il
Bu olay sadece bir parmak gerektirir, Studio'da emülatör ve bir fare kullanılarak simüle edilebilir.
Parametreler
Kod Örnekleri
local frame = script.Parent
frame.Active = true
local function onTouchTap()
-- Toggle background transparency
if frame.BackgroundTransparency > 0 then
frame.BackgroundTransparency = 0
else
frame.BackgroundTransparency = 0.75
end
end
frame.TouchTap:Connect(onTouchTap)