ตัวอย่าง Humanoid ถูกใช้เพื่อสร้างโมเดลตัวละครทั้งสำหรับอวตารผู้ใช้และ NPCเมื่อ Humanoid มีอยู่ภายใน Model ที่มีส่วนชื่อ หัว Roblox จะแสดงชื่อและ/หรือแถบสุขภาพบนส่วนนั้น

ผ่านคุณสมบัติต่างๆ Humanoid กำลังติดตาม:
- ชื่อการแสดง ซึ่งแสดงเหนือมนุษย์ ซึ่งแสดงเหนือมนุษย์
- ไม่ว่าแถบสุขภาพของมนุษย์ จะปรากฏเสมอ ไม่ปรากฏ หรือปรากฏเฉพาะเมื่อมนุษย์ได้รับความเสียหาย
- ว่าชื่อและแถบสุขภาพจะถูกปิดกั้น (ซ่อน) (ซ่อน) เมื่อเส้นสายตาระหว่างกล้องและมนุษย์อีกตัวถูกบล็อก
แสดงคุณสมบัติ
พิมพ์
คุณสมบัติ Humanoid.DisplayDistanceType กำหนดวิธีที่ผู้ใช้เห็นชื่อ/สุขภาพของตัวละครอื่นในความสัมพันธ์กับตัวละครของตนเอง
ผู้ดู
เมื่อ humanoid ของ DisplayDistanceType ถูกตั้งค่าเป็น HumanoidDisplayDistanceType.Viewer มันจะเห็นชื่อ/สุขภาพของมนุษย์อื่นๆ ภายในระยะของตัวเอง NameDisplayDistance และ HealthDisplayDistanceคุณสามารถพิจารณานี้เป็นลําดับความสําคัญต่ําสุดเนื่องจากไม่ได้นําไปพิจารณาสําหรับมนุษย์อื่นที่กำหนดค่าเป็น วัตถุ หรือ ไม่มี
ในสถานการณ์ต่อไปนี้ ตัวละครของผู้ใช้ ( ผู้ดู ) มีขนาดใหญ่กว่า NameDisplayDistance กว่า HealthDisplayDistance ตามที่ระบุโดยวงกลมผลลัพธ์คือผู้ใช้เห็นชื่อตัวละครสำหรับทั้ง Watchman และ Octavia แต่เห็นแถบสุขภาพสำหรับ Watchman เท่านั้น

เรื่อง
เมื่อ humanoid ของ DisplayDistanceType ถูกตั้งค่าเป็น HumanoidDisplayDistanceType.Subject มันจะใช้ การควบคุมเต็ม เกี่ยวกับชื่อและการแสดงสุขภาพของตัวเองผ่านค่า NameDisplayDistance และ HealthDisplayDistance ของมันโดยทั่วไป มนุษย์อื่นๆ จะเห็นชื่อ/สุขภาพของเรื่องเท่านั้นภายในระยะทางเหล่านั้นจาก มนุษย์อื่นๆ หุ่นยนต์
ในสถานการณ์ต่อไปนี้ทั้ง ผู้รักษา และ Octavia จะถูกตั้งค่าเป็น เรื่อง และช่วง NameDisplayDistance ของพวกเขาจะถูกระบุโดยวงกลมเฉพาะชื่อ Octavia เท่านั้นที่ผู้ใช้เห็นโดยตัวละครที่ยืนอยู่ภายในระยะของเธอ แต่อยู่นอกระยะของ Watchman มนุษย์นอยด์

ไม่มี
เมื่อ humanoid ของ DisplayDistanceType ถูกตั้งค่าเป็น HumanoidDisplayDistanceType.None ชื่อและแถบสุขภาพของมันจะไม่ปรากฏภายใต้สถานการณ์ใดๆในสถานการณ์ต่อไปนี้ทั้ง Watchman และ Octavia จะถูกตั้งค่าเป็น ไม่มี ดังนั้นตัวละครอื่นจะไม่เห็นชื่อหรือสุขภาพแม้ในระยะ

พิมพ์
คุณสมบัติ Humanoid.HealthDisplayType ให้การควบคุมเพิ่มเติมเกี่ยวกับการมองเห็นแถบสุขภาพของตัวละครแถบสะท้อนถึง humanoid's Health เป็นปัจจัยของ MaxHealth และมันเปลี่ยนสีจากเขียวเป็นสีเหลืองเป็นสีแดงเมื่อสุขภาพของ humanoid ลดลง
เสมอบน
เมื่อแฮนด์โลดของมนุษย์ HealthDisplayType ถูกตั้งค่าเป็น HumanoidHealthDisplayType.AlwaysOn แถบสุขภาพของมันจะปรากฏเสมอ

แสดงเมื่อเสียหาย
มนุษย์หุ่นยนต์ที่มี HealthDisplayType ตั้งค่าเป็น HumanoidHealthDisplayType.DisplayWhenDamaged เฉพาะแสดงเเถบสุขภาพเมื่อ Health น้อยกว่า MaxHealth ของมันในสถานการณ์ต่อไปนี้ Watchman มีสุขภาพเต็มและไม่แสดงแถบสุขภาพ แต่ Octavia ได้รับความเสียหาย 50% และแสดงแถบสุขภาพสีเหลือง

เสมอปิด
เมื่อแฮนด์โลดของมนุษย์ HealthDisplayType ถูกตั้งค่าเป็น HumanoidHealthDisplayType.AlwaysOff แถบสุขภาพของมันจะไม่ปรากฏภายใต้สถานการณ์ใดๆ

การบดบัง
การปิดกั้น (ซ่อน) ชื่อของมนุษย์หลังกำแพงหรือวัตถุอื่นๆ จะควบคุมโดยคุณสมบัติของตัวละคร Humanoid.NameOcclusion
ไม่มีการอุดตัน
เมื่อหุ่นยนต์ถูกซ่อนไว้ข้างหลังวัตถุที่มองเห็นได้และ NameOcclusion ของมันถูกตั้งค่าเป็น NameOcclusion.NoOcclusion ชื่อและสุขภาพของมันจะไม่ถูกปิดบังจากการดูหุ่นยนต์
ในสถานการณ์ต่อไปนี้ทั้ง Watchman และ Octavia จะถูกตั้งค่าเป็น NoOcclusion แม้ว่าทั้งสองจะซ่อนไว้เพียงพอหลังคอลัมน์หิน แต่มนุษย์ที่ดูยังคงเห็นชื่อ/การแสดงสุขภาพของพวกเขา

ปิดกั้นทั้งหมด
เมื่อหุ่นยนต์ถูกซ่อนไว้ข้างหลังวัตถุที่มองเห็นได้และ NameOcclusion ของมันถูกตั้งค่าเป็น NameOcclusion.OccludeAll ชื่อและสุขภาพของมันจะถูกปิดกั้นจากการดูหุ่นยนต์เสมอ
ในสถานการณ์ต่อไปนี้ ทั้ง Watchman และ Octavia จะซ่อนได้เพียงพอหลังคอลัมน์หิน ผู้รักษา ถูกตั้งค่าเป็น OccludeAll ดังนั้นชื่อและสุขภาพของมันจะถูกซ่อนจากมนุษย์ที่ดู Octavia อย่างไรก็ตามถูกตั้งค่าเป็น NoOcclusion และชื่อ/สุขภาพของเธอยังคงมองเห็นได้สำหรับมนุษย์ที่ดู

การปิดกั้นศัตรู
เมื่อมนุษย์หุ่นยนต์ถูกซ่อนไว้ข้างหลังวัตถุที่มองเห็นได้และ NameOcclusion ของมันถูกตั้งค่าเป็น NameOcclusion.EnemyOcclusion ชื่อและสุขภาพของมันจะถูกปิดกั้นจากมนุษย์หุ่นยนต์ศัตรูเท่านั้น (ผู้เล่นในเกมที่แตกต่างกัน Team )
ในสถานการณ์ต่อไปนี้ ทั้ง Watchman และ Octavia ถูกซ่อนไว้เพียงพอหลังคอลัมน์หิน และทั้งสองถูกตั้งค่าเป็น EnemyOcclusion มนุษย์ที่ดูและ ผู้รักษา อยู่บนเดียวกัน Team ดังนั้นการปิดกั้นชื่อ/สุขภาพจึงไม่เกิดขึ้นอย่างไรก็ตามชื่อและสุขภาพของ Octavia ในทีมตรงข้ามถูกปิดกั้น

ปรับแต่งการแสดงตัวละคร
อวตารของผู้ใช้
เพื่อแก้ไขชื่อหรือการแสดงสุขภาพสำหรับแต่ละอวาตาร์ที่เข้ามาในประสบการณ์ เชื่อมต่อเหตุการณ์ Players.PlayerAdded และ Player.CharacterAdded ใน Script และตั้งค่าคุณสมบัติการแสดงผล บนตัวละครของ Humanoid
สคริปต์ - การปรับแต่งระดับโลก
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- ให้มนุษย์ทุกคนมีการควบคุมเต็มรูปแบบเกี่ยวกับชื่อ/ระยะทางการแสดงสุขภาพของตน
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- ตั้งระยะการแสดงชื่อเป็น 20 สตัด
humanoid.NameDisplayDistance = 20
-- ตั้งระยะการแสดงแถบสุขภาพเป็น 15 สตัด
humanoid.HealthDisplayDistance = 15
-- แสดงเฉพาะแถบสุขภาพเมื่อมนุษย์ถูกทำลาย
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
คุณยังสามารถปรับแต่งคุณสมบัติตามความต้องการของผู้เล่น Team เช่นการตั้งค่าผู้เล่น "การ์ด" ทั้งหมดเป็นชื่อทั่วไปและซ่อนชื่อของผู้เล่น "นินจา" ทั้งหมด
สคริปต์ - การปรับแต่งทีม
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- ตั้งชื่อของผู้รักษาทั้งหมดเป็น "Guard" ทั่วไป
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- ซ่อนชื่อสำหรับนินจาทั้งหมด
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
ตัวละคร NPC
สำหรับตัวละคร NPC ที่อยู่ในโลก 3D แล้วคุณสามารถแก้ไขชื่อ/สุขภาพโดยตรงบนวัตถุ Humanoid ในหน้าต่าง คุณสมบัติ


เปลี่ยนชื่อการแสดงผล
โดยค่าเริ่มต้นชื่อจอแสดงของมนุษย์จะตรงกับบัญชี Roblox ของผู้ใช้ ชื่อจอแสดง ซึ่งเป็นเอกลักษณ์และแยกจากบัญชีผู้ใช้ ชื่อผู้ใช้ ของพวกเขาเพื่อแสดงชื่อที่กำหนดเองได้อย่างเต็มที่ที่ไม่เกี่ยวข้องกับบัญชีของผู้ใช้ คุณสามารถยกเลิกค่า Humanoid.DisplayName ได้
ตั้งโดยตรง
คุณสามารถตั้งค่าคุณสมบัติ DisplayName ของตัวอย่างใด ๆ Humanoid ที่คุณได้รับการอ้างอิงผ่าน Script เช่นตัวอย่าง การปรับแต่งทีม หรือโดยตรงบน NPC ตัวละคร Humanoid ของตัวละคร
ตั้งผ่านการใส่ของผู้ใช้
ในบางแนวเช่นการแสดงบทบาทหรือการต่อสู้คุณอาจต้องการให้ผู้ใช้ใส่ชื่อตัวละครของตนเองชื่อตัวละครสัตว์เลี้ยงฯลฯซึ่งเฉพาะกับประสบการณ์และไม่ได้เชื่อมโยงกับชื่อแสดงบัญชีของพวกเขาคุณสามารถรวบรวมอินพุตนี้บนด้านไคลเอนต์ผ่านการใส่ชื่อ TextBox ได้

เมื่อมีการส่งข้อมูลเข้าแล้ว คุณสามารถส่งมันไปยังเซิร์ฟเวอร์ผ่านการเหตุการณ์ระยะไกล remote event จากนั้นในด้านเซิร์ฟเวอร์ ฟังการเหตุการณ์ระยะไกลและกำหนดชื่อ กรอง ให้กับตัวละครผู้ใช้ของคุณ Humanoid
สคริปท้องถิ่น - การเปิดเหตุการณ์ระยะไกล
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
สคริปต์ - กำหนดชื่อที่กรอง
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- สร้างเหตุการณ์ระยะไกลเพื่อรับข้อความจากไคลเอนต์เพื่อการกรอง
local changeNameEvent = Instance.new("RemoteEvent")
changeNameEvent.Name = "ChangeNameEvent"
changeNameEvent.Parent = ReplicatedStorage
local function onRequestNameChange(player, newName)
local character = player.Character
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local filterResult
local success, errorMessage = pcall(function()
filterResult = TextService:FilterStringAsync(newName, player.UserId)
end)
if success then
local filteredName
local success, errorMessage = pcall(function()
filteredName = filterResult:GetNonChatStringForBroadcastAsync()
end)
if success and humanoid then
humanoid.DisplayName = filteredName
end
end
end
changeNameEvent.OnServerEvent:Connect(onRequestNameChange)