การจัดรูปแบบ UI เป็นการแก้ปัญหาของ Roblox สำหรับแผ่นสไตล์, คล้ายกับ CSS ซึ่งช่วยให้คุณสามารถประกาศและใช้การแก้ไขทั่วโลกบนคุณสมบัติของตัวอย่าง UI ได้การสนับสนุนระดับเครื่องยนต์นี้เป็นพื้นฐานสำหรับ เครื่องมือแก้ไขสไตล์ และท่อส่งโทเค็นตั้งแต่ต้นจนจบ
แนวคิด
สไตล์ กฎ (ส่วนหนึ่งของ StyleSheet ) ใช้กับทุกตัวอย่างที่ตรงกับคำนิยามของกฎ Selector เพื่อจับคู่คุณลักษณะเช่นชื่อคลาสชื่อตัวอย่างและความสัมพันธ์ระหว่างระดับดูคู่มือ Selector สำหรับรายละเอียด
สไตล์ โทเค็น ที่กำหนดผ่าน คุณสมบัติ ของโทเค็น แทนที่ตัวแปรคุณสมบัติ UI ที่สามารถใช้ได้ทั่วสไตล์และส่วนประกอบ เช่น สีที่ใช้บ่อยสำหรับ , และ ตัวอย่างเช่นโทเค็นสามารถเปรียบเทียบกับตัวแปร CSS ได้
สไตล์ ธีม ที่กำหนดผ่าน คุณสมบัติ ของธีม StyleSheet ประกอบด้วยชุดโทเค็นเฉพาะที่สามารถสลับได้ เช่น โทเค็นสีที่กำหนดธีม "สว่าง" และ "มืด"หัวข้อที่เกี่ยวข้องต้องมีชุดโทเค็นเดียวกันเพื่อทำงานอย่างถูกต้อง

การแพร่กระจายกฎ
ตัวอย่าง StyleLink เชื่อมโยง StyleSheet และกฎที่เกี่ยวข้องกับมันกับพ่อ ScreenGui และทั้งหมดของ GuiObjects ภายในมันเฉพาะหนึ่ง StyleSheet สามารถใช้กับต้นไม้ที่กำหนดได้

การจำแนกคำนิยามตัวเลือก
ในระดับสูง การจับคู่และการแก้ไขตัวอย่างผ่านการกำหนดค่าของกฎ Selector ทำงานผ่าน:
- ตัวเลือกคลาส Roblox ซึ่งเล็งไปที่ตัวอย่างทั้งหมดของคลาสที่กำหนด ตัวอย่างเช่น , , ฯลฯ
- แท็ก ตัวอย่าง ถูกใช้กับวัตถุ UI เฉพาะผ่าน CollectionService
- การเลือกตัวอย่าง ชื่อ ตามค่าของวัตถุ UI Instance.Name
- ตัวปรับเปลี่ยนตัวอย่าง **** คล้ายกับ pseudo-Elements CSS ที่ใช้ผ่าน phantom UIComponents เช่น UICorner หรือ UIStroke
- GuiObject สถานะ ตัวเลือกเซิร์ฟเวอร์ที่คล้ายกับ CSS pseudo-class ตัวเลือกซึ่งตรงกับหนึ่งในสี่ GuiState ค่าเอนเนมที่เป็นตัวเลขเช่น Hover
การตั้งค่าต่อไปนี้แสดงวิธีที่โทเค็นขนาดและสี ธีม และตัวเลือกคลาสของ "Frame" ผลิตสีม่วง Frame ขนาด 200×200 พิกเซล

ตัวเลือกคลาส UI
local CollectionService = game:GetService("CollectionService")local ReplicatedStorage = game:GetService("ReplicatedStorage")local screenGui = script.Parent-- โทเค็นlocal tokens = Instance.new("StyleSheet")tokens.Name = "Tokens"tokens.Parent = ReplicatedStoragetokens:SetAttribute("SquareS", UDim2.fromOffset(50, 50))tokens:SetAttribute("SquareM", UDim2.fromOffset(100, 100))tokens:SetAttribute("SquareL", UDim2.fromOffset(200, 200))tokens:SetAttribute("Fit", UDim2.fromScale(1, 1))tokens:SetAttribute("Magenta", Color3.fromHex("FF0099"))tokens:SetAttribute("Gold", Color3.fromHex("FFCC00"))tokens:SetAttribute("Aqua", Color3.fromHex("0093F0"))-- ธีมAlocal themeA = Instance.new("StyleSheet")themeA.Name = "ThemeA"themeA.Parent = ReplicatedStoragelocal tokensDerive = Instance.new("StyleDerive")tokensDerive.StyleSheet = tokens -- ดึงโทเค็นระดับโลกtokensDerive.Parent = themeAthemeA:SetAttribute("FrameSize", "$SquareM")themeA:SetAttribute("FrameColor", "$Aqua")-- ธีม Blocal themeB = Instance.new("StyleSheet")themeB.Name = "ThemeB"themeB.Parent = ReplicatedStoragelocal tokensDerive = Instance.new("StyleDerive")tokensDerive.StyleSheet = tokens -- ดึงโทเค็นระดับโลกtokensDerive.Parent = themeBthemeB:SetAttribute("FrameSize", "$SquareL")themeB:SetAttribute("FrameColor", "$Magenta")-- แผ่นออกแบบlocal designSheet = Instance.new("StyleSheet")designSheet.Name = "DesignSheet"designSheet.Parent = ReplicatedStoragelocal themeDerive = Instance.new("StyleDerive")themeDerive.StyleSheet = themeB -- สืบย้อนจาก ThemeBthemeDerive.Parent = designSheet-- เชื่อมออกแบบแผ่นเชื่อมไปยัง ScreenGuilocal styleLink = Instance.new("StyleLink")styleLink.StyleSheet = designSheetstyleLink.Parent = screenGui-- กำหนดกฎlocal rule = Instance.new("StyleRule")rule.Selector = "Frame" -- ตัวเลือกคลาสrule.Parent = designSheet-- ตั้งค่าคุณสมบัติกฎrule:SetProperties({["BackgroundColor3"] = "$FrameColor",["Size"] = "$FrameSize",["BorderSizePixel"] = 0})local frame = Instance.new("Frame")frame.Parent = screenGui
คุณสมบัติที่แก้ไขแล้ว
คุณสมบัติของตัวอย่างที่ได้รับผลกระทบจากการจัดรูปแบบถูกเครื่องหมายด้วย ⚠ ในหน้าต่าง คุณสมบัติ และเลื่อนเมาส์ไปเหนือคุณสมบัติที่ได้รับผลกระทบจะแสดงสไตล์ที่มีอิทธิพลต่อมันตัวอย่างเช่น หากกฎสไตล์บอกแท็ก ให้ใช้ ของ แต่คุณสมบัติของวัตถุจะแสดงค่าเริ่มต้นของ ของ แต่ค่าจริงจะใช้ค่าสไตล์ของกฎ แทน

เมื่อมูลค่าคุณสมบัติเริ่มต้นหรือแบบสไตล์ถูกแก้ไขเพิ่มเติมสำหรับวัตถุ UI เฉพาะ มันจะกลายเป็น ห้างแข็ง เพื่อระบุมูลค่าที่ถูกแทนที่ตัวอย่างเช่น — โดยเดาค่าเริ่มต้น ของ — การตั้งค่าคุณสมบัตินั้นให้เป็น สำหรับตัวอย่างเฉพาะจะเปิดเผยการยกเลิกในตัวหนา:


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