ด้วยผู้เล่น Xbox และ PlayStation กว่า 200 ล้านคน, คอนโซลเป็นโอกาสที่ดีสำหรับคุณที่จะดึงดูดผู้ใช้มากขึ้น เมื่อเปรียบเทียบกับอุปกรณ์ปกติ, การออกแบบสำหรับคอนโซลและประสบการณ์ UI 10 ฟุตข
การออกแบบสำหรับผู้ควบคุม
ประสบการณ์คอนโซลได้รับคำสั่งจากผู้ใช้ผ่านการควบคุมการป้อนข้อมูลซึ่งต้องการการออกแบบพิเศษเพื่อให้ปฏิสัมพันธ์ที่เรียบร้อย
เรียบเรียง UI
ใช้สิ่งต่อไปนี้เพื่อเรียบเรียงการออกแบบ UI สำหรับคอนโซล:
การควบคุมการนำทางที่เข้าถึงได้ : การนำทางพื้นฐานรวมถึงทิศทางสี่ เลือก ย้อนกลับควบคุมวิธีที่ผู้ใช้เข้าถึงและใช้งานกับเนื้อหาของคุณบนคอนโซล ให้แน่ใจว่าผู้ใช้สามาร
การนำทางเครื่องควบคุมเริ่มต้น : แม้ว่าผู้ใช้สามารถเข้าถึงเมนู UI โดยการเปิดเมาส์เสมือนขึ้นได้ แต่เนื่องจากผู้ใช้ไม่คุ้นเคยกับกระบวนการนี้ จึงจำเป็นต้องสนับสนุนการนำทางเครื
ความซับซ้อนของการป้อนควบคุมอย่างน้อย : ในขณะที่วิธีการป้อนควบคุมอื่น ๆ เช่นการแตะหรือการคลิก ผู้ใช้คอนโซลจะนำทางโดยการกดปุ่มหนึ่งในแต่ละครั้งดังนั้นการเคลื่อ
ไม่มีหน้าต่างการแชท : ไม่ว่าคุณจะใช้ระบบการแชทในการใช้งานหรือฟอร์กระบบการแชทในระบบการแชทเป็นระบบการแชทของคุณ ปิดหน้าต่างการแชท สำหรับประสบการณ์บนคอนโซล
การเพิ่มการควบคุมเสริม
ในขณะที่มือถือและพีซีดีท็อปไม่เคยเป็นเรื่องเรียบง่ายเชิญให้การนำทางเสมอในคอนโซลดังนั้นผู้ใช้จึงไม่สามารถกระโดดระหว่างระยะไกลได้เร็วเท่าที่อื่น ๆ เครื่องมือเพิ่มเติมและลัดได
รองรับไอคอนปุ่มดินามิก
เมื่อประสบการณ์ของคุณขยายไปยังแพลตฟอร์มมากขึ้น, ตรวจสอบให้แน่ใจว่าจะแสดงไอคอนปุ่มที่ตรงกับอุปกรณ์ที่แตกต่างกัน UserInputService มีวิธีการสองที่สามารถทำได้นี้:
UserInputService:GetStringForKeyCode() สามารถแปลงรหัสคำถามของสหรัฐอเมริกาเป็นระเบียบอร์ดเกมได้ มันเป็นประโยชน์ในการแสดงรหัสทรัพยากรของคุณเป็นไอคอนเมาส์เพื่อตรงกับรูปลัก
การแปลงสินทรัพย์ที่กําหนดเองlocal UserInputService = game:GetService("UserInputService")local imageLabel = script.Parentlocal key = Enum.KeyCode.ButtonAlocal mappings = {ButtonA = "rbxasset://BUTTON_A_ASSET", -- แทนที่ด้วยสินทรัพย์ ButtonAButtonCross = "rbxasset://BUTTON_CROSS_ASSET" -- แทนที่ด้วยสินทรัพย์ ButtonCross ที่ต้องการ}local mappedKey = UserInputService:GetStringForKeyCode(key)local image = mappings[mappedKey]imageLabel.Image = imageUserInputService:GetImageForKeyCode() ส่งไอคอน Roblox ปกติสำหรับรหัสโค้ดต้องการเป็นตัวแทนง่ายๆเหมือนตัวอย่างต่อไปนี้สำหรับการแมพปุ่ม Enum.KeyCode.ButtonA โชว์:
การแมพไอคอนเริ่มต้นlocal UserInputService = game:GetService("UserInputService")local imageLabel = script.Parentlocal key = Enum.KeyCode.ButtonAlocal mappedIcon = UserInputService:GetImageForKeyCode(key)imageLabel.Image = mappedIcon
การให้ข้อเสนอแนะทางกายภาพ
ข้อดีหนึ่งของคอนโทรลเลอร์คือความสามารถในการให้ข้อเสียงแบบแฮปติคโดยการสั่นคอนโทรลเลอร์เพื่อให้ผู้ใช้รู้สึกถึงการสัมผัส คุณสามารถใช้ HapticService เพื่อเพิ่มค
- เหตุการณ์ทางกายภาพที่น่าตื่นเต้น เช่น ระเบิดหรือการชน
- เหตุการณ์ที่ต้องการความสนใจของผู้ใช้ เช่น การเปิดประตูหรือการเข้าร่วมของลูกค้าใหม่
- การแจ้งเตือนการกระทํา UI เช่นการเลื่อนเมาส์ไปยังด้านล่างของรายการหรือการคลิกปุ่มที่ไม่สนับสนุน
HapticService ยังช่วยให้คุณควบคุมมอเตอร์แต่ละตัวในคอนโทรลเลอร์เพื่อตั้งค่าความเข้มของการเคลื่อนไหวและระยะเวลาในแต่ละครั้ง ดังนั้นคุณจึงสามารถตั้งค่าคว
การสร้างสำหรับประสบการณ์ 10ft
เมื่ออยู่บนคอนโซลผู้ใช้มักจะนั่งอยู่ 10 เท้าออกจากหน้าจอ ตัวชี้วัดขนาด 1.5x จะให้ความสบายสบาย การนำทางได้ง่าย และมีตัวอักษรที่อ่านได้
พิจารณาพื้นที่ปลอดภัยของทีวี
เนื่องจากไม่ใช่ทุกเทเลทีวีที่แสดงเนื้อหาให้กับขอบของหน้าจอเต็มรูปแบบเนื่องจากข้อจำกัดด้านเทคนิคและประวัติศาสตร์ ใส่รายการ UI ในพื้นที่ปลอดภัยของทีวีเพื่อให้แน่ใจว่าส่วนประกอบสำคัญของประสบการณ์
การใช้ UI ขนาดไดนามิก
ใช้ขนาดและตําแหน่งที่สัมพันธ์เพื่อวัดทุกสิ่งในเปอร์เซ็นต์ของกรอบ ใส่สกุลลูกศรในขนาด UI ทั้งหมดโดย:
- พัฒนาสำหรับความละเอียดที่ต่ำก่อน
- โดยใช้ตำแหน่งสัมพันธ์และ UISizeConstraint เพื่อปรับขนาด UI
- การปรับขนาดขึ้นอยู่กับลักษณะการออก力ด้วย GuiService:IsTenFootInterface()
- การนำ ScrollingFrame มาใช้เพื่อลดความวุ่นวายบนหน้าจอเมื่อ UI เพิ่มขึ้น
การปรับแต่งการเปิดเผยแบบค่อยเป็นค่อยไป
การเปิดเผยแบบคืบหน้าจะเลื่อนเนื้อหาขั้นสูงหรือใช้งานไม่บ่อยไปยังหน้าจอรอง มันเป็นหนึ่งในวิธีที่ดีที่สุดในการลดความยุ่งยากของ UXและทำให้มันเป็นไปได้ง่ายต่อการใช้
การให้ข้อเสียงข้อเสียง
ข้อเสนอแนะซึ่งการโต้ตอบมักจะเงียบหรือใช้การรีแมทชันเบา ๆ น้อย ๆ เพื่อยืนยันการเลือก หรือสัญญาณเสียง คุณสามารถเพิ่