เมนูบริบทของ อวาตาร์ (ACM) ทำให้ผู้ใช้สามารถโต้ตอบกับกันและกันได้ง่ายขึ้น เมื่อเปิดใช้งาน ACM ในเกมของคุณ ผู้ใช้สามารถเดินไปยังตัวละครของผู้ใช้อื่นและคลิกที่พวกเขาเพื่อเปิดเมนูขนาดเล็กที่มีตัวเลือกเริ่มต้นหลายรายการ ผู้เล่นสามารถส่งคำขอเป็นเพื่อน เริ่มการแชทส่วนตัว ดูโปรไฟล์ของผู้ใช้ หรือโบกมือ
หลังจากที่ เปิดใช้งาน ACM ในเกมของคุณแล้ว คุณสามารถปรับแต่ง ACM ได้ในหลายวิธี:
- เปิดและปิด โปรแกรมmatically ACM สำหรับผู้ใช้เฉพาะ
- ปรับแต่งรูปลักษณ์ของ ACM เพื่อสร้างอินเตอร์เฟซผู้ใช้ที่เป็นเอกลักษณ์
เปิดเมนูบริบทของอวาตาร์
เมนูบริบทของอวาตาร์ต้องเปิดใช้งานโดยใช้ตัวเลือก StarterGui:SetCore() "AvatarContextMenuEnabled" ใน LocalScript ACM เหมาะที่สุดสำหรับเกมที่ไม่มีพฤติกรรมที่กำหนดไว้ล่วงหน้าสำหรับการคลิกที่ผู้ใช้คนอื่น
ใช้โค้ดตัวอย่างด้านล่างเพื่อเปิดใช้งาน ACM ใน LocalScript:
-- รันใน LocalScript, โดยปกติใน "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
หากคุณต้องการตรวจสอบว่า ACM เปิดใช้งานอยู่หรือไม่ คุณสามารถใช้โค้ดต่อไปนี้เพื่อตรวจสอบสถานะปัจจุบันของ ACM:
--- ส่งคืนบูลีนที่บอกว่า ACM เปิดใช้งานอยู่หรือไม่StarterGui:GetCore(AvatarContextMenuEnabled)
เปิดและปิด ACM
เมื่อเปิดใช้งานแล้ว คุณสามารถเปิดและปิด ACM โดยโปรแกรมได้ด้วย StarterGui
เพื่อเปิด ACM โดยโปรแกรม ให้ใช้โค้ดต่อไปนี้:
-- ใช้ StarterGui:SetCore โดยที่ targetPlayer เป็นวัตถุ Player ที่ถูกต้องStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
เพื่อปิด ACM โดยโปรแกรม ให้ใช้โค้ดต่อไปนี้:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
ตัวเลือกเมนู
คุณสามารถ เพิ่ม และ ลบ การกระทำผ่านการเขียนสคริปต์ โดยค่าเริ่มต้น เมนูจะมีตัวเลือกดังต่อไปนี้:
| ตัวเลือกเมนู | คำบรรยาย |
|---|---|
| เพื่อน | ส่งคำขอเป็นเพื่อนให้กับผู้ใช้ที่เลือก |
| แชท | เปิดการสนทนาส่วนตัวกับผู้ใช้ที่เลือกในแชทในเกม |
| ดู | เปิดหน้าต่างเพื่อดูรูปลักษณ์ของผู้ใช้ที่เลือก |
| โบกมือ | เริ่มการแอนิเมชันโบกมือไปยังผู้ใช้ที่เลือก |
เมื่อ ACM เปิดอยู่ ผู้ใช้สามารถเลื่อนและเลือกผู้ใช้อื่นในคาร์ูเซลการเลือกตัวละคร ตัวละครจะถูกจัดเรียงตามระยะห่างจากตัวละครที่เลือก เมนูจะมีการอัปเดตเฉพาะเมื่อเปิดใช้งาน และรายการของผู้ใช้ที่มีอยู่จะหมุนวนเมื่อเลื่อน

เพิ่มตัวเลือกเมนู
เมื่อเปิดใช้งานแล้ว สามารถเพิ่มการกระทำเฉพาะในเกมไปยัง ACM ตัวอย่างเช่น เกมอาจอนุญาตให้มีคำขอการค้า ตัวเลือกการเพิ่มในกลุ่ม หรือการโต้ตอบพิเศษอื่นๆ
ตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มการกระทำที่กำหนดเองในเมนูบริบทของอวาตาร์:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- เชื่อมต่อฟังก์ชันเข้ากับ "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- ณ จุดนี้ คุณสามารถเรียกใช้งาน InvokeServer() บน RemoteFunction เพื่อแจ้งเตือนเซิร์ฟเวอร์เกี่ยวกับการเลือก
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- เพิ่มตัวเลือก ACM โดยใช้ SetCore() พร้อมกับ "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
ลบตัวเลือกเมนู
คุณสามารถลบตัวเลือกที่กำหนดเองและตัวเลือกเริ่มต้น เพื่อน แชท ดู และโบกมือจาก ACM โดยการอ้างอิงชื่อการกระทำที่กำหนดเองหรือตัวเลือก Enum.AvatarContextMenuOption ที่มีอยู่
ใช้โค้ดต่อไปนี้เพื่อลบตัวเลือกเมนูเริ่มต้นและแบบกำหนดเอง:
-- ลบตัวเลือก "Custom ACM Action"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- ลบตัวเลือกเริ่มต้น "เพื่อน" โดยอ้างอิง Enum AvatarContextMenuOption.FriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
ปรับแต่งรูปลักษณ์ของเมนู
เพื่อเปลี่ยนรูปลักษณ์ของเมนูบริบทของอวาตาร์ ให้เรียกใช้ StarterGui:SetCore() ด้วยตัวเลือก "AvatarContextMenuTheme" โดยให้ตารางของพารามิเตอร์และค่าเพื่อปรับแต่งรูปลักษณ์ของเมนู
อินเตอร์เฟซผู้ใช้ของ ACM ประกอบด้วยส่วนต่างๆ ดังนี้:

A. แท็กชื่อ: ชื่อผู้ใช้ของตัวละครที่ถูกโต้ตอบด้วย
B. กรอบปุ่ม: มีปุ่มทั้งหมดของ ACM
C. ปุ่ม: ปุ่มแต่ละปุ่มสำหรับการดำเนินการ ACM เริ่มต้นหรือตามที่กำหนดเอง
พารามิเตอร์รูปลักษณ์
นี่คือพารามิเตอร์การปรับแต่งของ ACM:
พื้นหลัง
| BackgroundColor | สี Color3 สำหรับพื้นหลังโดยรวมของ ACM (มีประโยชน์ที่สุดเมื่อไม่ใช้ภาพพื้นหลัง) |
| BackgroundTransparency | ค่าความโปร่งใส (0–1) สำหรับพื้นหลังโดยรวมของ ACM (มีประโยชน์ที่สุดเมื่อไม่ใช้ภาพพื้นหลัง) |
| BackgroundImage | ID ของสินทรัพย์ที่ถูกต้องสำหรับภาพพื้นหลังของ ACM |
| BackgroundImageTransparency | ค่าความโปร่งใส (0–1) สำหรับภาพพื้นหลัง |
| BackgroundImageScaleType | อีลิเมนต์ Enum.ScaleType สำหรับการปรับขนาดภาพพื้นหลัง |
| BackgroundImageSliceCenter | Rect ที่ระบุศูนย์กลางของภาพที่แบ่งเป็นเก้าเมื่อ BackgroundImageScaleType ถูกตั้งเป็น Enum.ScaleType.Slice |
แท็กชื่อ
| NameTagColor | สี Color3 สำหรับแถบที่แสดงผู้เล่นที่กำลังโต้ตอบด้วย |
| NameUnderlineColor | สี Color3 สำหรับเส้นบางๆ ระหว่างแท็กชื่อและปุ่มการกระทำ |
กรอบปุ่ม
| ButtonFrameColor | สี Color3 สำหรับส่วน (กรอบ) ที่มีปุ่มการกระทำ |
| ButtonFrameTransparency | ค่าความโปร่งใส (0–1) สำหรับส่วนกรอบปุ่ม |
ปุ่ม
| ButtonColor | สี Color3 สำหรับพื้นหลังของปุ่มการกระทำ ACM |
| ButtonTransparency | ค่าความโปร่งใส (0–1) สำหรับสีพื้นหลังของปุ่มการกระทำ |
| ButtonHoverColor | สี Color3 สำหรับสถานะ "เลื่อนเมาส์" ของปุ่มการกระทำ |
| ButtonHoverTransparency | ค่าความโปร่งใส (0–1) สำหรับสี "เลื่อนเมาส์" ของปุ่มการกระทำ |
| ButtonUnderlineColor | สี Color3 สำหรับเส้นบางๆ ที่แยกแต่ละปุ่มการกระทำ |
| ButtonImage | ID ของสินทรัพย์ที่ถูกต้องสำหรับภาพพื้นหลังของปุ่ม |
| ButtonImageScaleType | อีลิเมนต์ Enum.ScaleType สำหรับการปรับขนาดภาพของปุ่ม |
| ButtonImageSliceCenter | Rect ที่ระบุศูนย์กลางของภาพที่แบ่งเป็นเก้าเมื่อ ButtonImageScaleType ถูกตั้งเป็น Enum.ScaleType.Slice |
ข้อความ
| Font | อีลิเมนต์ Enum.Font สำหรับแท็กชื่อและข้อความบนปุ่ม |
| TextColor | สี Color3 สำหรับข้อความทั้งหมดใน ACM |
| TextScale | ค่าฟลอทเพื่อปรับขนาดของข้อความเริ่มต้นของแต่ละองค์ประกอบ |
รูปภาพต่างๆ
| LeaveMenuImage | ID ของสินทรัพย์สำหรับภาพปุ่มปิด ACM |
| ScrollLeftImage | ID ของสินทรัพย์สำหรับภาพปุ่ม "เลื่อนซ้าย" ในคาร์ูเซล |
| ScrollRightImage | ID ของสินทรัพย์ที่ถูกต้องสำหรับภาพปุ่ม "เลื่อนขวา" ในคาร์ูเซล |
ตัวละครที่เลือก
| SelectedCharacterIndicator | MeshPart ที่ลอยอยู่เหนือหัวของตัวละครเพื่อระบุว่าตัวละครนั้นถูกเลือก |
ขนาดและตำแหน่ง
| Size | UDim2 สำหรับขนาดโดยรวมของ ACM |
| MinSize | Vector2 ที่ระบุขนาดขั้นต่ำของ ACM |
| MaxSize | Vector2 ที่ระบุขนาดสูงสุดของ ACM |
| AspectRatio | ค่าฟลอทที่ระบุความกว้างและความสูงสัมพัทธ์ของ ACM |
| AnchorPoint | AnchorPoint ของ ACM |
| OnScreenPosition | UDim2 ที่ระบุตำแหน่งของ ACM บนหน้าจอ (ตำแหน่งที่มันจะแปรเปลี่ยนเมื่อเปิด) |
| OffScreenPosition | UDim2 ที่ระบุตำแหน่งของ ACM นอกหน้าจอ (ตำแหน่งที่มันจะแปรเปลี่ยนจาก/ไปเมื่อเปิด/ปิด) |
ตัวอย่างการปรับแต่ง
โค้ดตัวอย่างต่อไปนี้ปรับแต่งธีมของ ACM โดยใช้พารามิเตอร์พื้นฐานบางประการ:
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})
