GuiObject

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
ไม่สามารถเรียกดู

GuiObject เป็นคลาสที่มีเอกลักษณ์ (มากเหมือน Class.BasePart

เพื่อจัดการการจัดเรียงของวัตถุ GUI ในวิธีพิเศษคุณสามารถใช้โครงสร้างการจัดเรียงเช่น list/flex หรือ grid และคุณสามารถสไตล์พวกเขาได้นอกเหนือจากคุณสมบัติหลักของพวกเขาผ่าน

แม้ว่าจะเป็นไปได้ที่จะตรวจจับเหตุการณ์ปุ่มเมาส์บน GUI ใด ๆ โดยใช้ InputBegan และ Class.GuiObject.InputEnd

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    กำหนดว่ารูปแบบนี้สามารถรับข้อมูลการป้อนของผู้ใช้ได้หรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดจุดเริ่มต้นของ GuiObject สัมพันธ์กับขนาดอันตามตัวเลข

  • อ่านพร้อมๆ กัน

    กำหนดว่าจะมีการปรับขนาดหรือไม่ขึ้นอยู่กับเนื้อหาของลูก

  • อ่านพร้อมๆ กัน

    กำหนดสีพื้นหลัง GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดความโปร่งใสของพื้นหลังและขอบเขตของ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดสีของขอบ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดวิธีการที่ GuiObject ขอบเขตถูกวางโดยเฉลี่ยกับขนาดของมัน

  • อ่านพร้อมๆ กัน

    กำหนดความกว้างของพิกเซลของ GuiObject รอบ

  • อ่านพร้อมๆ กัน

    กำหนดว่าควรเรนเดอร์หรือไม่ GuiObjects ภายนอกขอบเขตของรูปปั้น GUI ระดับพ่อของคุณ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    กำหนดว่าผู้เล่นกดเมาส์บน GuiObject หรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดว่า GuiButton สามารถใช้งานได้หรือไม่ หรือว่า GuiState ของ GuiObject กําลังเปลี่ยนแปลงหรือไม่

  • อ่านพร้อมๆ กัน

    ควบคุมลำดับการเรียงลำดับของ GuiObject เมื่อใช้กับ UIGridStyleLayout

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะได้รับการเลือกเมื่อเครื่องยนต์ผู้ควบคุมเลื่อนลง

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนซ้าย

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนไปทางขวา

  • อ่านพร้อมๆ กัน

    ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนขึ้น

  • อ่านพร้อมๆ กัน

    กำหนดตำแหน่งพิกเซลและตำแหน่งเศษเส้นของ GuiObject

  • อ่านพร้อมๆ กัน

    กำหนดจำนวนองศาที่ GuiObject หมุน

  • อ่านพร้อมๆ กัน

    กำหนดว่า GUI สามารถเลือกได้โดย gamepad หรือไม่

  • อ่านพร้อมๆ กัน

    เปลี่ยนแปลงการตกแต่งการเลือกที่ใช้สำหรับแพดพันเกม

  • อ่านพร้อมๆ กัน

    ลำดับของ GuiObjects ที่เลือกโดย UI เกมแพด.

  • อ่านพร้อมๆ กัน

    กำหนดขนาดพิกเซลและขนาดพิกเซลของ GuiObject

  • อ่านพร้อมๆ กัน

    ตั้งค่า Size แกนที่ Class.GuiObject จะสร้างบน, สัมพันธ์กับขนาดของพ่อของมัน.

  • ซ่อนอยู่
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน
    เลิกใช้แล้ว

    สมบัติสัมพันธ์ผสมของ BackgroundTransparency และ TextTransparency

  • อ่านพร้อมๆ กัน

    กำหนดว่า GuiObject และบุตรหลานของมันจะถูกเรนเดอร์หรือไม่

  • อ่านพร้อมๆ กัน

    กำหนดลำดับที่เรนเดอร์ GuiObject เมื่อเป็นคู่กับคนอื่น

คุณสมบัติรับทอดมาจากGuiBase2d
  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายตำแหน่งหน้าจอที่เป็นไปเลยของรายการ UI ในพิกเซล

  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายการหมุนเวียนหน้าจริงของ UI โดยองศา

  • อ่านอย่างเดียว
    ไม่ซ้ำ

    อธิบายขนาดหน้าจอที่เป็นไปจริงของรายการ UI

  • อ่านพร้อมๆ กัน

    เมื่อตั้งค่าเป็น true จะใช้การแปลภาษาใน GuiBase2d และลูกหลานของมัน

  • อ่านพร้อมๆ กัน

    การอ้างอิงถึง LocalizationTable ที่จะใช้ในการประยุกต์การแปลอัตโนมัติสู่ GuiBase2d และลูกหลานของมัน

  • อ่านพร้อมๆ กัน

    ปรับแต่งพฤติกรรมการเลือกแพดพักในแนวลง

  • อ่านพร้อมๆ กัน

    ปรับแต่งพฤติกรรมการเลือกแพดพานเกมในแนวโน้มทางซ้าย

  • อ่านพร้อมๆ กัน

    ปรับแต่งพฤติกรรมการเลือกแพดพักเกมในทิศทางที่ถูกต้อง

  • อ่านพร้อมๆ กัน

    ปรับแต่งพฤติกรรมการเลือกแพดพักในแนวตั้งขึ้น

  • อ่านพร้อมๆ กัน

    ช่วยให้คุณสามารถปรับแต่งการเคลื่อนไหวของแผงควบคุมเกม

วิธีการ

อีเวนต์

  • เกิดขึ้นเมื่อผู้ใช้เริ่มต้นใช้งานผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มคีย์บอร์ดลง, ฯลฯ)

  • ไฟร์เมื่อผู้ใช้เปลี่ยนวิธีการโต้ตอบผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มกล้อง, ฯลฯ)

  • ไฟร์เมื่อผู้ใช้หยุดใช้งานผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มคีย์บอร์ดลง, ฯลฯ)

  • จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ไปที่องค์ประกอบ GUI

  • จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ออกจากส่วน GUI

  • การเพิ่มเติมเมื่อผู้ใช้เคลื่อนเมาส์ไปยัง GUI เมื่ออยู่ภายในส่วนหนึ่งของ GUI

  • จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์กลับเมื่อเมาส์อยู่เหนือ GUI เอเจนต์

  • จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์ไปข้างหน้าเมื่อเมาส์อยู่เหนือรายการ GUI

  • จุดเกิดเหตุเมื่อ GuiObject ได้รับการโฟกัสด้วย Gamepad ตัวเลือก

  • ไฟร์เมื่อ Gamepad เลือกเปลี่ยนโฟกัสไปที่ GuiObject

  • เกิดขึ้นเมื่อผู้เล่นเริ่มต้น ดำเนินการต่อและหยุดการกด UI เป็นเวลานาน

  • TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal

    เกิดขึ้นเมื่อผู้เล่นยกนิ้วของพวกเขาบนองค์ประกอบ UI

  • TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal

    เปิดเมื่อผู้เล่นทำการเลื่อนหรือดึงด้วยนิ้วสองนิ้วบน UI

  • TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal

    เกิดขึ้นเมื่อผู้เล่นทำการหมุนโดยใช้นิ้วสองนิ้วบนรูปปั้น

  • TouchSwipe(swipeDirection : Enum.SwipeDirection,numberOfTouches : number):RBXScriptSignal

    เกิดขึ้นเมื่อผู้เล่นทำการเลื่อนสไนเปอร์บนองค์ประกอบ UI

  • TouchTap(touchPositions : Array):RBXScriptSignal

    เกิดขึ้นเมื่อผู้เล่นทำการเลื่อนสายตาในส่วน UI

อีเวนต์รับทอดมาจากGuiBase2d
  • SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal

    เกิดขึ้นเมื่อเลือกแผงควบคุมเกมเคลื่อนไปยัง, ออกหรือเปลี่ยนแปลงใน GuiBase2d หรือ GuiObjects ต้นได้

คุณสมบัติ

Active

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดว่าจะมีการจมการป้อนข้อมูลในพื้นที่ 3D หรือไม่ โดยใช้ตัวอย่างเช่น โมเดลพื้นฐานที่มี <a href="https://www.class.ui-kit.com/class-ui-kit/">Class.ClickDetector\ คล

สำหรับวัตถุ GuiButton (ImageButton และ <

ตัวอย่างโค้ด

TextButton Active Debounce

-- 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 กำหนดจุดเริ่มต้นของ GuiObject โดยเฉลี่ยขนาดของมัน ลักษณะลูกศริลัง GuiObject.Position กำหนดจากที่ที่ตำแหน่งองค์ประกอบถู

ดู ที่นี่ สำหรับภาพประกอบและรายละเอียด

ตัวอย่างโค้ด

AnchorPoint Demo

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

อ่านพร้อมๆ กัน

สมบัตินี้ใช้เพื่อปรับขนาด UI หลักของบุตรหลานโดยอัตโนมัติตามขนาดของบุตรหลาน คุณสามารถใช้สมบัตินี้เพื่อเพิ่มขนาดข้อความและเนื้อหาอื่น ๆ ให้กับวัตถุ UI ในเวลาการแก้ไขหรือวิ่งได้ และขนา

เมื่อ AutomaticSize ตั้งค่าเป็น Enum.AutomaticSize มูลค่าใด ๆ นอกจาก None สิ่งนี้อาจทำให้วัตถุ UI นี้ขยายตัวขึ้นขึ้นอยู่กับเนื้อหาของลูกของมัน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้สมบัติสิทธิ์นี้และวิธีการทำงาน โปรดดูที่ ที่นี่

ตัวอย่างโค้ด

LocalScript in a ScreenGui

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดสีของพื้นหลัง GuiObject (สีกรอบสี) หากรายการของคุณมีข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อความข้อคว

สมบัติสมุดอื่นที่กำหนดคุณสมบัติทางสายตาของพื้นหลังคือ GuiObject.BackgroundTransparency หากตั้งค่านี้เป็น 1 จะไม่มีการเรนเดอร์ทั้งพื้นหลังหรือชายแดน

ดูเพิ่มเติม BorderColor3 .

ตัวอย่างโค้ด

Rainbow Frame

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดความโปร่งใสของพื้นหลังและขอบเขต GuiObject และ TextBox หรือ

หากค่านี้กำหนดเป็น 1 ไม่มีพื้นหลังหรือขอบเขตที่เรนเดอร์และพื้นหลัง GUI จะเป็นสมบูรณ์โปร่งใส

BorderColor3

อ่านพร้อมๆ กัน

กำหนดสีของ GuiObject เขตชายฝั่งสี่เหลี่ยมผืนผ้า (ซึ่งเรียกว่าสีเข็ม) นี้จะแยกออกจากโอเบจต์ของ GuiObject.BackgroundColor3 ของคุณ คุณจะไม

หมายเหตุว่าส่วนประกอบ UIStroke ช่วยให้สามารถใช้เอฟเฟกต์ชายแดนขั้นสูงได้

ตัวอย่างโค้ด

Button Highlight

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดวิธีการที่ GuiObject ขอบเขตถูกวางโดยมีขนาดของมันโดยใช้รายการเดียวกันในชื่อเรียบเรียงของเมือง Enum.BorderMode

หมายเหตุว่า UIStroke สามารถเข้าถึงคุณสมบัตินี้และสามารถใช้เอฟเฟกต์ชายแดนขั้นสูงได้

BorderSizePixel

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดความกว้างของขอบ GuiObject ในพิกเซล การตั้งค่านี้ให้เป็น 0 จะปิดการใช้งานขอบทั้งหมด

หมายเหตุว่า UIStroke สามารถเข้าถึงคุณสมบัตินี้และสามารถใช้เอฟเฟกต์ชายแดนขั้นสูงได้

ตัวอย่างโค้ด

Button Highlight

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดว่า GuiObject จะหลบหลีก (ทำให้มองไม่เห็น) ส่วนใดขององค์ประกอบ GUI ที่อยู่ภายนอกขอบเขตของสี่เหลี่ยมผืนผ้า

หมายเหตุว่า GuiObject.Rotation ไม่รองรับโดยคุณสมบัตินี้ หากคุณสมบัตินี้หรือ GUI บรรพบุรุษของมันมี non-零 GuiObject.Rotation คุณสมบัตินี้จะถูกรวมในกา

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

เมื่อนิ้วของผู้เล่นถูกกดบน GuiObject ผล GuiState ของ GuiObject จะตั้งเป็น 2> Class

Interactable

อ่านพร้อมๆ กัน

กำหนดว่า GuiButton สามารถใช้งานได้หรือไม่ หรือว่า GuiState ของ GuiObject กําลังเปลี่ยนแปลงหรือไม่

บน GuiButton :

  • เมื่อการตั้งค่า Interactable บน GuiButton ตั้งค่าเป็น false จะไม่สามารถกดหรือคลิกได้อีก
  • เมื่อการตั้งค่า Interactable บน GuiButton ตั้งค่าเป็น true จะทำให้ 2>Class.GuiButton2> ปฏิสัมพันธ์ได้ตามปกติอีกครั้งและ 5>Class.Gui

ใน GuiObject :

  • เมื่อการตั้งค่า Interactable บน GuiButton ตั้งค่าเป็น false จะตั้งค่า 2>Class.GuiObject.GuiState|GuiState2> อยู่เสมอ
  • เมื่อการตั้งค่า Interactable บน GuiButton ตั้งค่าเป็น true สถานะ 1> Class.GuiObject.GuiState|GuiState1> จะปฏิสัมพันธ์ตามปกติอีกครั้ง

LayoutOrder

อ่านพร้อมๆ กัน

สมบัตินี้ควบคุมลำดับการเรียงลำดับของ GuiObject เมื่อใช้ UIGridStyleLayout (เช่น UIListLayout

GuiObjects เรียงลำดับตามลำดับของการเรียงลำดับที่ดีกว่า โดยมีค่าที่ต่ำกว่าค่าสูงสุด วัตถุที่มีค่าเท่ากันจะกลับไปที่ลำดับที่พวกเขาถูกเพิ่มใน

หากคุณไม่แน่ใจว่าคุณจะต้องเพิ่มรายการระหว่างสองรายการที่มีอยู่ในอนาคตหรือไม่นั้น ก็เป็นการดีกว่าที่จะใช้ 100 ( 0

ดูเพิ่มเติม ZIndex ซึ่งกำหนดลำดับการเรนเดอร์ของวัตถุโดยไม่ต้องเรียงลำดับลำดับ

NextSelectionDown

อ่านพร้อมๆ กัน

สมบัตินี้ตั้งค่า GuiObject ที่เลือกเมื่อผู้ใช้ย้ายเลื่อนเมาส์ลง เกมแพด เลื่อนตรงไป หากสมบัตินี้ว่างเปล่าจะไม่เปลี่ยนแปลง GUI ที่เลือก

การย้ายตัวเลือก gamepad ลงจะตั้ง GuiService.SelectedObject ไปยังตัวนี้ ยกเว้นว่า GUI ไม่ใช่ Selectable โปรดทราบว่าค่าของตัวเลือก GUI

ดูเพิ่มเติม NextSelectionUp , NextSelectionLeft และ NextSelectionRight

ตัวอย่างโค้ด

Creating a Gamepad Selection Grid

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

อ่านพร้อมๆ กัน

สมบัตินี้ตั้งค่า GuiObject ที่เลือกเมื่อผู้ใช้ย้ายเลื่อกผู้เล่นไปทางซ้าย หากสมบัตินี้ว่างเปล่าการย้ายเลื่อนผู้เล่นไปทางซ้ายจะไม่เปลี่ยนแปลง GUI ที่เลือก

การย้ายตัวเลือก gamepad ไปทางซ้ายจะตั้ง GuiService.SelectedObject ไว้ที่ตัวนี้ยกเว้น GUI ไม่ใช่ Selectable หากคุณต้องการให้ค่าขอ

ดูเพิ่มเติม NextSelectionUp , NextSelectionDown และ NextSelectionRight .

ตัวอย่างโค้ด

Creating a Gamepad Selection Grid

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

อ่านพร้อมๆ กัน

สมบัตินี้ตั้งค่า GuiObject ที่เลือกเมื่อผู้ใช้ย้ายเลื่อยเกมไปที่ด้านขวา หากสมบัตินี้ว่างเปล่าการย้ายเกมไปที่ด้านขวาจะไม่เปลี่ยนแปลง GUI ที่เลือก

การย้ายตัวเลือก gamepad ไปที่ด้านขวาจะตั้ง GuiService.SelectedObject ไว้ที่ตัวนี้ยกเว้น GUI ไม่ใช่ Selectable หากตัวเลือกนี้ไม่ต

ดูเพิ่มเติม NextSelectionUp , NextSelectionDown และ NextSelectionLeft .

ตัวอย่างโค้ด

Creating a Gamepad Selection Grid

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

อ่านพร้อมๆ กัน

สมบัตินี้ตั้งค่า GuiObject ที่เลือกเมื่อผู้ใช้ย้ายเลื่อนผู้ควบคุมขึ้นด้านบน หากสมบัตินี้ว่างเปล่าการย้ายเลื่อนผู้ควบคุมขึ้นจะไม่เปลี่ยนแปลง GUI ที่เลือก

การย้ายตัวเลือก gamepad ขึ้นจะตั้ง GuiService.SelectedObject ไว้ที่ตัวนี้ยกเว้น GUI ไม่ใช่ Selectable หมายเหตุว่าค่าของตัวเลือก GUI

ดูเพิ่มเติม NextSelectionDown , NextSelectionLeft , NextSelectionRight .

ตัวอย่างโค้ด

Creating a Gamepad Selection Grid

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดพิกเซลและตําแหน่งเศษเสี้ยวของ GuiObject โดยใช้ UDim2 ตําแหน่งจะอยู่รอบ GuiObject.AnchorPoint ของวัตถุ

ตำแหน่งศาสก์เป็นค่าเฉลี่ยขนาดของรายการ GUI พ่อ, ถ้ามี

ส่วนพิกเซลของค่า UDim2 มีขนาดเท่ากันไม่ว่าขนาดของ GUI ปกติจะเล็กแค่ไหน ส่วนตัวอักษรจะแสดงตำแหน่งของวัตถุในพิกเซล ตำแหน่งจริงของวัตถุสามารถอ่านได้จา

Rotation

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดจำนวนองศาที่ผู้ GuiObject หมุน การหมุนเป็นสมบัติเฉลี่ยของวัตถุ ไม่ใช่ เฉพาะ Class.GuiObject.Anchor

Selectable

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดว่า GuiObject สามารถเลือกได้เมื่อกำลังนำทาง GUIs โดยใช้ gamepad

หากค่านี้เป็นค่าจริง, ก็สามารถเลือก GUI ได้ การเลือก GUI จะตั้งค่าคุณสมบัติ GuiService.SelectedObject นี้ให้กับตัวเรื่องนั้น

เมื่อค่านี้เป็นประเภทเท็งเลข จะไม่สามารถเลือก GUI ได้ แต่การตั้งค่านี้เป็นประเภทเท็งเลขเมื่อ GUI ได้รับการเลือกจะไม่เลือกมันหรือเปลี่ยนค่าของโปรไฟล์ GuiService.SelectedObject

เพิ่ม GuiObject.SelectionGained และ GuiObject.SelectionLost จะไม่ได้รับการเรียกใช้สำหรับรายการ สิ่งนี้จะไม่ได้รับการเรียกใช้สำหรับ GuiObject โดยคุณต้องเปลี่ยนสมบัติ พรรคเกี่ยวกับ

สมบัตินี้มีประโยชน์หาก GUI เชื่อมต่อกับหลาย GUI ผ่านคุณสมบัติเช่นนี้ Class.GuiObject.NextSelectionUp

ตัวอย่างโค้ด

Limiting TextBox Selection

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

อ่านพร้อมๆ กัน

คุณสมบัตินี้จะเปลี่ยนแปลงการตกแต่งการเลือกเริ่มต้นที่ใช้สำหรับแพดพันเกม

หมายเหตุว่าชิ้นส่วน SelectionImageObject ที่เลือกมีการเรียงร้อยของชิ้นส่วน GuiObject ด้วย Size ของรูปภาพ สำหรั

การเปลี่ยน SelectionImageObject สำหรับองค์ประกอบ GuiObject เท่านั้นจะส่งผลกระทบต่อองค์ประกอบนั้น เพื่อส่งผลกระทบต่อองค์ประกอบของผู้ใช้ทั้งหมดให้ตั้งค่าสมบัติของ Class.PlayerGui.

เพื่อกำหนดหรือตั้งค่าว่า GUI ตัวใดที่เลือกโดยผู้ใช้คุณสามารถใช้สมบัติของ GuiService.SelectedObject

SelectionOrder

อ่านพร้อมๆ กัน

GuiObjects ที่มีลำดับการเลือกต่ำกว่า เลือกไอเท็ม GuiObjects เมื่อเริ่มต้นการเลือกแผงควบคุมหรือโทร GuiService:Select() บนกำแพงต้นไม้

Size

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดขนาดเส้นสกุล GuiObject โดยใช้ UDim2

ขนาดของเวกเตอร์สามารถเป็นขนาดของรูปปั้นพี่แม่ GUI หากมี

ส่วนพิกเซลของ UDim2 มีขนาดเท่ากันไม่ว่าขนาด GUI ปกติของคุณจะเล็กแค่ไหน ส่วนตัวอักษรจะแสดงขนาดของวัตถุในพิกเซล ขนาดของวัตถุที่แท้จริงสามารถอ่านได้จา

หาก GuiObject มีพ่อค้านั้นขนาดของมันในแต่ละแกนยังได้รับผลกระทบจาก SizeConstraint ของพ่อค้า

ตัวอย่างโค้ด

Health Bar

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

อ่านพร้อมๆ กัน

สมบัตินี้ตั้งค่า Size แกนที่ GuiObject จะสร้างบน, สมมติว่าขนาดของพ่อ Class.Gui ของมัน

สมบัตินี้มีประโยชน์สำหรับการสร้างวัตถุ GUI ที่มุ่งหมายเพื่อขนาด หรือ ความสูงของวัตถุพ่อ แต่ไม่ใช่ทั้งสอง เพื่อเก็บรักษาอัตราส่วนรูปของวัตถุไว้ เอาไว้เป็นประโยชน์

Transparency

ซ่อนอยู่
ไม่ซ้ำ
อ่านพร้อมๆ กัน

สมบัติสัมพันธ์ผสมของ BackgroundTransparency และ TextTransparency

Visible

อ่านพร้อมๆ กัน

สมบัตินี้จะถูกเรนเดอร์ว่า GuiObject และลูกหลานของมันจะปรากฏ

การเรนเดอร์ของส่วนประกอบที่แต่ละของ GuiObject สามารถควบคุมได้โดยอิสระผ่านคุณสมบัติการโปร่งใสเช่น GuiObject.BackgroundTransparency และ TextLabel.TextTransparency และ 1>

เมื่อสมบัติสมบัตินี้เป็น false คลาส GuiObject จะถูกเพิกเฉยโดยโครงสร้างเลเยียนเช่น UIListLayout และ 1> Class.UIGridLayout1>

ตัวอย่างโค้ด

UI Window

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

อ่านพร้อมๆ กัน

สมบัตินี้กำหนดลำดับในการเรนเดอร์ GuiObject เมื่อเปรียบเทียบกับคนอื่น

โดยปกติ, GuiObjects จะเรนเดอร์ในลำดับความสำคัญที่เพิ่มขึ้นโดยมีคนที่มีมูลค่าต่ำกว่า ZIndex

หากคุณไม่แน่ใจว่าคุณจะต้องเพิ่มรายการระหว่างสองรายการที่มีอยู่ในอนาคตหรือไม่นั้น มันเป็นการดีกว่าที่จะใช้ 100 (

ดูเพิ่มเติม LayoutOrder ซึ่งควบคุมการเรียงลำดับ เรียงลำดับ ของ GuiObject เมื่อใช้กับโครงสร้างเว็บไซต์เช่น 1> Class.UIListLayout1>

วิธีการ

TweenPosition

ย้าย GUI ไปยังตำแหน่งใหม่ที่กำหนดไว้ในเวลาที่ระบุโดยใช้ UDim2 และ Enum.EasingDirection และ Enum.EasingStyle

ฟังก์ชันนี้จะกลับมาว่าเวลาจะเล่นหรือไม่ มันจะไม่เล่นหากเวลาอื่นกำลังเล่นบน GuiObject และปารามิเตอร์เหนือการเปลี่ยนแปลงจะเป็นปลอม

ดูเพิ่มเติม:

  • GuiObject:TweenSize() , วัยรุ่นขนาดของ GUI
  • GuiObject:TweenSizeAndPosition() เด็กชายเด็กผู้หญิง a ขนาดและตำแหน่งของ GUI ที่จัดการอย่างไรก็ตาม

พารามิเตอร์

endPosition: UDim2

สถานที่ที่ GUI ควรย้ายไป

easingDirection: Enum.EasingDirection

ทิศทางที่จะทำให้ GUI เป็น ตำแหน่งสิ้นสุด

ค่าเริ่มต้น: "Out"
easingStyle: Enum.EasingStyle

สไตล์ในการลด GUI ลงไปยัง ตำแหน่งสิ้นสุด

ค่าเริ่มต้น: "Quad"
time: number

เท่าไหร่ในวินาทีที่ทวีนจะใช้เวลาในการเสร็จสิ้น

ค่าเริ่มต้น: 1
override: bool

ว่า tween จะทำซ้ำ tween ที่กำลังดำเนินอยู่หรือไม่

ค่าเริ่มต้น: false
callback: function

คุณสมบัติโทรหาเพื่อดำเนินการเมื่อสิ้นสุดการเรียก

ค่าเริ่มต้น: "nil"

ส่งค่ากลับ

ว่า tween จะเล่นหรือไม่

ตัวอย่างโค้ด

Tween a GUI's Position

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

ปรับแต่ง GUI ให้เล็กลงเป็น Datatype.UDim2 ใหม่ในเวลาที่กำหนดโดยใช้ UDim2 และ Enum.EasingDirection และ Enum.EasingStyle

ฟังก์ชันนี้จะกลับมาว่าเวลาจะเล่นหรือไม่ โดยปกติจะสร้างขึ้นเสมอเมื่อเปิดใช้งาน แต่จะสร้างขึ้นเมื่ออีกเวลาจะถูกเปิดใช้งานและตั้งค่าเป็นปลอม

ดูเพิ่มเติม:

  • GuiObject:TweenPosition() วิดีโอสาว ๆ ตำแหน่งของ GUI
  • GuiObject:TweenSizeAndPosition() เด็กชายเด็กผู้หญิง a ขนาดและตำแหน่งของ GUI ที่จัดการอย่างไรก็ตาม

พารามิเตอร์

endSize: UDim2

ขนาดที่ GUI ควรปรับแต่ง

easingDirection: Enum.EasingDirection

ทิศทางที่จะทำให้ GUI เข้ากับ ขนาดตัวอักษรสิ้นสุด

ค่าเริ่มต้น: "Out"
easingStyle: Enum.EasingStyle

สไตล์ในการลด GUI ลงเป็น ขนาดต้นท้าย

ค่าเริ่มต้น: "Quad"
time: number

เท่าไหร่ในวินาทีที่ทวีนจะใช้เวลาในการเสร็จสิ้น

ค่าเริ่มต้น: 1
override: bool

ว่า tween จะทำซ้ำ tween ที่กำลังดำเนินอยู่หรือไม่

ค่าเริ่มต้น: false
callback: function

คุณสมบัติโทรหาเพื่อดำเนินการเมื่อสิ้นสุดการเรียก

ค่าเริ่มต้น: "nil"

ส่งค่ากลับ

ว่า tween จะเล่นหรือไม่

ตัวอย่างโค้ด

Tween a GuiObject's Size

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

ปรับแต่ง GUI ให้เล็กลงและย้าย GUI ไปยังขนาดและตำแหน่งใหม่ในเวลาที่กำหนดโดยใช้ UDim2 และ Enum.EasingDirection และ Enum.EasingStyle ตามลำดับ

ฟังก์ชันนี้จะกลับมาว่าเวลาจะเล่นหรือไม่ โดยปกติจะสร้างขึ้นเสมอเมื่อเปิดใช้งาน แต่จะสร้างขึ้นเมื่ออีกเวลาจะถูกเปิดใช้งานและตั้งค่าเป็นปลอม

ดูเพิ่มเติม:

พารามิเตอร์

endSize: UDim2

ขนาดที่ GUI ควรปรับแต่ง

endPosition: UDim2

สถานที่ที่ GUI ควรย้ายไป

easingDirection: Enum.EasingDirection

ทิศทางที่จะทำให้ GUI เข้ากับ ขนาดตัวอักษร และ ตำแหน่งตัวอักษร

ค่าเริ่มต้น: "Out"
easingStyle: Enum.EasingStyle

สไตล์ที่จะทำให้ GUI เข้ากับ ขนาดตัวอักษร และ ตำแหน่งปลาย

ค่าเริ่มต้น: "Quad"
time: number

เท่าไหร่ในวินาทีที่ทวีนจะใช้เวลาในการเสร็จสิ้น

ค่าเริ่มต้น: 1
override: bool

ว่า tween จะทำซ้ำ tween ที่กำลังดำเนินอยู่หรือไม่

ค่าเริ่มต้น: false
callback: function

คุณสมบัติโทรหาเพื่อดำเนินการเมื่อสิ้นสุดการเรียก

ค่าเริ่มต้น: "nil"

ส่งค่ากลับ

ว่า tween จะเล่นหรือไม่

ตัวอย่างโค้ด

Tween a GUI's Size and Position

local frame = script.Parent.Frame
frame:TweenSizeAndPosition(UDim2.new(0, 0, 0, 0), UDim2.new(0, 0, 0, 0))

อีเวนต์

InputBegan

เหตุการณ์นี้จะเกิดขึ้นเมื่อผู้ใช้เริ่มใช้งาน GuiObject ผ่านอุปกรณ์ที่เชื่อมต่อกับมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มคีย์บอร์ด, ฯลฯ)

Class.UserInputService มีเหตุการณ์ที่มีชื่อเหมือนกันซึ่งไม่จำกัดอยู่ในรายการ UI เฉพาะ: UserInputService.InputBegan

เหตุการณ์นี้จะเกิดขึ้นเสมอไม่ว่าสถานะเกม

ดูเพิ่มเติม:

พารามิเตอร์

Class.InputObject ซึ่งประกอบด้วยข้อมูลที่มีประโยชน์สำหรับการเรียกใช้การป้อนข้อมูลของผู้ใช้เช่น type of input และ Enzym.UserInputState|สถานะข


ตัวอย่างโค้ด

Tracking the Beginning of Input on a GuiObject

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

เหตุการณ์นี้จะเกิดขึ้นเมื่อผู้ใช้เปลี่ยนวิธีการโต้ตอบผ่านอุปกรณ์ระหว่างมนุษย์และคอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มกล้อง, ฯลฯ)

Class.UserInputService มีเหตุการณ์ที่มีชื่อเหมือนกันซึ่งไม่จำกัดอยู่ในรายการ UI เฉพาะ: UserInputService.InputChanged

เหตุการณ์นี้จะเกิดขึ้นเสมอไม่ว่าสถานะเกม

ดูเพิ่มเติม:

พารามิเตอร์

Class.InputObject ซึ่งประกอบด้วยข้อมูลที่มีประโยชน์สำหรับการเรียกใช้การป้อนข้อมูลของผู้ใช้เช่น type of input และ Enzym.UserInputState|สถานะข


ตัวอย่างโค้ด

GuiObject InputChanged Demo

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

เหตุการณ์ที่สิ้นสุดลงเมื่อผู้ใช้หยุดโต้ตอบผ่านอุปกรณ์ที่เชื่อมต่อระหว่างมนุษย์และคอมพิวเตอร์ (เมาส์ปุ่มลง, แตะเริ่ม, ปุ่มกล้อง, ฯลฯ)

Class.UserInputService มีเหตุการณ์ที่มีชื่อเหมือนกันซึ่งไม่จำกัดอยู่ในรายการ UI เฉพาะ: UserInputService.InputEnded

เหตุการณ์นี้จะเกิดขึ้นเสมอไม่ว่าสถานะเกม

ดูเพิ่มเติม:

พารามิเตอร์

Class.InputObject ซึ่งประกอบด้วยข้อมูลที่มีประโยชน์สำหรับการเรียกใช้การป้อนข้อมูลของผู้ใช้เช่น type of input และ Enzym.UserInputState|สถานะข


ตัวอย่างโค้ด

Tracking the End of Input on a GuiObject

-- 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 จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ไปที่เอเจนต์ GUI

โปรดอย่าพึ่งพาข้อมูลอ้างอิง x และ y ที่ผ่านมาในเหตุการณ์นี้เป็นวิธีการปลอมพูดว่าคุณจะรู้ได้อย่างไรว่าเมาส

เหตุการณ์นี้จะเกิดขึ้นแม้ว่ารูปแบบ GUI จะแสดงอยู่ภายใต้องค์ประกอบอื่น

หากคุณต้องการติดตามเมาส์ของผู้ใช้เมื่อออกจาก GUI คุณสามารถใช้เหตุการณ์ GuiObject.MouseLeave ได้

ดูเพิ่มเติม:

พารามิเตอร์

ค่า x หน้าจอในพิกเซลที่เกี่ยวข้องกับมุมด้านบนซ้ายของหน้าจอ

ค่าความลึกของหน้าจอเมาส์ในพิกเซล, เมื่อเป็นค่าสัมพันธ์กับมุมด้านบนซ้ายของหน้าจอ


ตัวอย่างโค้ด

Printing where a Mouse Enters a GuiObject

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 จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ออกจากเอเลเมนต์ GUI

โปรดอย่าพึ่งพาข้อมูลอ้างอิง x และ y ที่ผ่านโดยเหตุการณ์นี้เป็นวิธีที่เป็นประโยชน์ในการกำหนดว่าเมาส์ของผู้

เหตุการณ์นี้จะเกิดขึ้นแม้ว่ารูปแบบ GUI จะแสดงอยู่ภายใต้องค์ประกอบอื่น

ดูเพิ่มเติม:

พารามิเตอร์

ค่า x หน้าจอในพิกเซลที่เกี่ยวข้องกับมุมด้านบนซ้ายของหน้าจอ

ค่าความลึกของหน้าจอเมาส์ในพิกเซล, เมื่อเป็นค่าสัมพันธ์กับมุมด้านบนซ้ายของหน้าจอ


MouseMoved

การเพิ่มเติมเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ของพวกเขาในขณะที่อยู่ภายใน GUI องค์ประกอบ มันเหมือนกับ Mouse.Move ซึ่งเปิดได้อย่างไรก็ตามว่าผู้ใช้มีเมาส์อยู่เหนืออ

หมายเหตุเหตุการณ์นี้จะเกิดขึ้นเมื่อตำแหน่งเมาส์ได้รับการปรับปรุงดังนั้นจึงจะเกิดขึ้นอยู่เรื่อย ๆ ในขณะที่เคลื่อนที่

อาร์กิวเมนต์ x และ y การใช้ การแสดงผลขนาดจอของผู้ใช้ในพิกเซล สามารถใช้ได้เพื่อกำหนดตำแหน่งเครื่องเขย่าเมาส์บน GUI หน้าจอ และข้อมูลตำแหน่งของเม

ตัวอย่างด้านล่างแสดงให้เห็นวิธีการกำหนดค่าเฉพาะของเมาส์ของผู้ใช้เมื่อเปรียบเทียบกับ GUI เอเลเมนต์:


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)

หมายเหตุว่าเหตุการณ์นี้อาจไม่ได้เกิดขึ้นเมื่อเมาส์ของผู้ใช้เข้าหรือออกจากรูปสีของ GUI ดังนั้นค่า x และ y อาจไม่ตรงกันอย่างสมบูรณ์แบบกับเหลี่ยมของขอบ GUI

ดูเพิ่มเติม:

พารามิเตอร์

ค่า x หน้าจอในพิกเซลที่เกี่ยวข้องกับมุมด้านบนซ้ายของหน้าจอ

ค่าความลึกของหน้าจอเมาส์ในพิกเซล, เมื่อเป็นค่าสัมพันธ์กับมุมด้านบนซ้ายของหน้าจอ


MouseWheelBackward

เหตุการณ์ WheelBackward จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์ของพวกเขากลับไปที่ล้อเมาส์เมื่อมาส์อยู่เหนือองค์ประกอบ GUI หรือไม่ก็ตาม มันคล้ายกับ Mouse.WheelBackward

เหตุการณ์นี้เกิดขึ้นเพียงเพื่อเป็นเครื่องบ่งชี้ว่าล้อกำลังเคลื่อนที่ไปทางด้านหลัง สิ่งนี้หมายความว่า x และ y ตัวแปรของเมาส์ไม่เปลี่ยนแปลงในผลของเหตุการณ์นี้ ตัว

ดูเพิ่มเติม:

พารามิเตอร์

ค่า x หน้าจอในพิกเซลที่เกี่ยวข้องกับมุมด้านบนซ้ายของหน้าจอ

ค่าความลึกของหน้าจอเมาส์ในพิกเซล, เมื่อเป็นค่าสัมพันธ์กับมุมด้านบนซ้ายของหน้าจอ


MouseWheelForward

เหตุการณ์ WheelForward จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์ของพวกเขาไปข้างหน้าเมื่อเมาส์อยู่เหนือองค์ประกอบ GUI ใด ๆ มันคล้ายกับ Mouse.WheelForward ซึ่งเปิดใช้งานไ

เหตุการณ์นี้เกิดขึ้นเพียงเพื่อเป็นเครื่องบอกตำแหน่งของล้อที่ก้าวไปข้างหน้า นี่หมายความว่า x และ y ตัวแปรของเมาส์ไม่เปลี่ยนแปลงในผลของเหตุการณ์นี้ ตัวแปรเหล่านี้เป

ดูเพิ่มเติม:

พารามิเตอร์

ค่า x หน้าจอในพิกเซลที่เกี่ยวข้องกับมุมด้านบนซ้ายของหน้าจอ

ความยาวของเมาส์ของผู้ใช้


SelectionGained

เหตุการณ์นี้จะเกิดขึ้นเมื่อ Gamepad เลือกเริ่มมุ่งเน้นไปที่ GuiObject

หากคุณต้องการตรวจสอบจาก Gamepad เลือกหยุดที่มุ่งเน้นไปที่องค์ประกอบ GUI คุณสามารถใช้เหตุการณ์ GuiObject.SelectionLost ได้

เมื่อ GUI ได้รับการเลือกโฟกัส, มูลค่าของสมบัติ SelectedObject โปรไฟล์ยังเปลี่ยนเป็นตัวเลือกที่ชนะการเลือก เพื่อระบุว่า GUI ได้รับเลือก, ตรวจสอบมูลค่าของสมบัตินี้


ตัวอย่างโค้ด

Handling GUI Selection Gained

local guiObject = script.Parent
local function selectionGained()
print("The user has selected this button with a gamepad.")
end
guiObject.SelectionGained:Connect(selectionGained)

SelectionLost

เหตุการณ์นี้จะเกิดขึ้นเมื่อ Gamepad เลือกผู้ให้ความสนใจเฉพาะกับ GUI

หากคุณต้องการตรวจสอบจาก Gamepad เลือกเริ่มต้นให้ความสนใจกับ GUI เอเจนต์คุณสามารถใช้เหตุการณ์ GuiObject.SelectionGained ได้

เมื่อ GUI สูญเสียการโฟกัสการเลือก มูลค่าของสมบัติสร้างขึ้นจะเป็นศูนย์หรือสู่ GUI เอเลเมนต์ที่ได้รับการเลือก เพื่อกำหนดว่า GUI ใดที่ได้รับการเลือกหรือไม่มี GUI เลือก ตร


ตัวอย่างโค้ด

Handling GUI Selection Lost

local guiObject = script.Parent
local function selectionLost()
print("The user no longer has this selected with their gamepad.")
end
guiObject.SelectionLost:Connect(selectionLost)

TouchLongPress

เหตุการณ์ TouchLongPress เกิดขึ้นหลังจากช่วงเวลาสั้น ๆ เมื่อผู้เล

เนื่องจากเหตุการณ์นี้ต้องใช้นิ้วเดียว, เหตุการณ์นี้สามารถจำลองใน Studio โดยใช้เมมูเลเตอร์และเมาส์

พารามิเตอร์

touchPositions: Array

รายการของ Vector2 ที่อธิบายตำแหน่ง สัมพันธ์ ของนิ้วที่เกี่ยวข้องในการเคลื่อนไหว

Entity.UserInputState ที่อธิบายสถานะของการเคลื่อนไหว:

  • เริ่มไฟที่เริ่มต้นของการเคลื่อนไหว (หลังจากความล่าช้าสั้น ๆ)
  • เปลี่ยนไฟหากผู้เล่นย้ายนิ้วของพวกเขาในขณะที่กด
  • จุดไฟที่สิ้นสุดเมื่อสิ้นสุดการเคลื่อนไหวเมื่อพวกเขาปล่อยนิ้วของพวกเขา

ตัวอย่างโค้ด

Move UI Element with TouchLongPress

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

เหตุการณ์ TouchPan เกิดขึ้นเมื่อผู้เล่นย้ายนิ้วของพวกเขาบนองค์ประกอบ UI โดยใช้อุปกรณ์เปิดใช้งานสัมผัส มันเปิดเมื่อ GuiObject.TouchSwipe จะ แ

เหตุการณ์นี้จะเกิดขึ้นด้วยตาราง Vector2 ที่อธิบายตำแหน่งหน้าจอของนิ้วของผู้มีส่วนร่วมในการเคลื่อนไหว นอกจากนี้ยั

เหตุการณ์นี้ไม่สามารถจำลองได้ใน Studio โดยใช้เมอร์เทอร์และเมาส์; คุณต้องมีอุปกรณ์จับแตะที่เปิดใช้งานจริงเพื่อการยิง

พารามิเตอร์

touchPositions: Array

ลิสต์ Lua ของ Vector2 ตัวอักษรที่แสดงตำแหน่งของนิ้วทั้งหมดที่มีในการเคลื่อนไหว

totalTranslation: Vector2

แสดงถึงความไกลที่แป้นเลื่อนได้ไปจากจุดเริ่มต้น

velocity: Vector2

ระบุว่าเครื่องยนต์ทำงานเร็วแค่ไหนในแต่ละมิติ

ระบุ Entity.UserInputState ของการเคลื่อนไหว


ตัวอย่างโค้ด

Panning UI Element

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

กิจกรรม TouchPinch เกิดขึ้นเมื่อผู้เล่นใช้นิ้วสองนิ้วเพื่อสร้างการเลื่อนหรือดึงการกระทําบนอ

เหตุการณ์นี้จะเกิดขึ้นด้วยตารางของ Vector2 ที่อธิบายตำแหน่งหน้าจอของนิ้วในการเคลื่อนไหว

เนื่องจากเหตุการณ์นี้ต้องใช้นิ้วสองนิ้วอย่างน้อยจึงจะไม่สามารถจำลองได้ใน Studio โดยใช้เมมูลเตอร์และเมาส์ คุณต้องมีอุปกรณ์ที่เปิดใช้งานแสดงผลจริง

พารามิเตอร์

touchPositions: Array

ลิสต์ Lua ของ Vector2 ตัวอักษรที่แสดงตำแหน่งของนิ้วทั้งหมดที่มีในการเคลื่อนไหว

scale: number

ลอยตัวที่แสดงความแตกต่างตั้งแต่ต้นของการเลื่อนแป้น

velocity: number

ลอยตัวแสดงถึงความเร็วที่เกิดขึ้นของการกด

ระบุ Entity.UserInputState ของการเคลื่อนไหว


ตัวอย่างโค้ด

Pinch/Pull Scaling

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

เหตุการณ์ TouchRotate เกิดขึ้นเมื่อผู้เล่นใช้นิ้วสองของเขาเพื่อสร้างการเลื่อนหรือดึงสัญลักษณ์บนตัวอักษรใช้อุปกรณ์เปิดใช้งานแสงสัมผัส ก

เหตุการณ์นี้จะเกิดขึ้นด้วยตาราง Vector2 ที่อธิบายตำแหน่งหน้าจอของนิ้วในการเคลื่อนไหว นอกจากนี้ยังเปิดตัวหลายครั

เนื่องจากเหตุการณ์นี้ต้องใช้นิ้วสองนิ้วอย่างน้อยจึงจะไม่สามารถจำลองใน Studio โดยใช้เมมูเลเตอร์และเมาส์ได้ คุณต้องมีอุปกรณ์ที่เปิดใช้งานแสดงผลสัมผัสจริง

พารามิเตอร์

touchPositions: Array

ลิสต์ Lua ของ Vector2 ตัวอักษรที่แสดงตำแหน่งของนิ้วทั้งหมดที่มีในการเคลื่อนไหว

rotation: number

ตัวลอยที่แสดงว่าการหมุนนั้นไปไกลแค่ไหนตั้งแต่เริ่มต้นของการเคลื่อนไหว

velocity: number

ลอยตัวที่แสดงว่าการเคลื่อนไหวนี้เร็วแค่ไหน

ระบุ Entity.UserInputState ของการเคลื่อนไหว


ตัวอย่างโค้ด

Touch Rotation

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

เหตุการณ์ TouchSwipe เกิดขึ้นเมื่อผู้เล่นทำการเลื่อนของเหนือ UI โดยใช้อุปกรณ์ที่เปิดใช้งานด้วยแท็งก์เปิด มันจะเกิดขึ้นด้วยทิศทางของการเลื่อน (ขึ้น, ลง, ซ้ายหรือขวา) และจุดสั

เนื่องจากเหตุการณ์นี้ต้องใช้นิ้วเดียวจึงสามารถจำลองได้ใน Studio โดยใช้เมมูลเตอร์และเมาส์

พารามิเตอร์

swipeDirection: Enum.SwipeDirection

A Enum.SwipeDirection แสดงทิศทางของการเลื่อน (ขึ้น, ลง, ซ้ายหรือขวา)

numberOfTouches: number

จำนวนจุดสัมผัสที่เกี่ยวข้องในการเคลื่อนไหว (โดยปกติ 1)


ตัวอย่างโค้ด

Bouncing Color Picker

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

เหตุการณ์ TouchTap เกิดขึ้นเมื่อผู้เล่นทำการกดทับที่หน้าจอด้วยการใช้อุปกรณ์เปิดใช้งานแบบสัมผัส ก

เนื่องจากเหตุการณ์นี้ต้องใช้นิ้วเดียวจึงสามารถจำลองได้ใน Studio โดยใช้เมมูลเตอร์และเมาส์

พารามิเตอร์

touchPositions: Array

รายการของ Vector2 ที่อธิบายตำแหน่ง สัมพันธ์ ของนิ้วที่เกี่ยวข้องในการเคลื่อนไหว


ตัวอย่างโค้ด

Tap Transparency Toggle

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)