การแสดงชื่อ/สุขภาพของตัวละคร

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

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

ข้อมูลการแสดงตัวละครอยู่ด้านบนของอวตารภายในเกม

ผ่านพร็อพเพอร์ตี้ Humanoid ที่หลากหลาย คุณสามารถปรับเปลี่ยนสิ่งต่อไปนี้ได้:

  • ระยะทาง ที่ผู้ใช้สามารถมองเห็นชื่อ/สุขภาพของมนุษย์อื่น ๆ ได้เมื่อเปรียบเทียบกับมนุษย์ของตัวละครของตนเอง
  • ชื่อที่แสดง ที่แสดงอยู่เหนือมนุษย์
  • ว่าบาร์สุขภาพของมนุษย์นั้น ปรากฏเสมอ, ไม่เคยปรากฏ, หรือปรากฏเฉพาะเมื่อมนุษย์ได้รับความเสียหายเท่านั้น
  • ว่าชื่อและบาร์สุขภาพจะ ถูกปิดบัง (ซ่อน) เมื่อมุมมองระหว่างกล้องและมนุษย์อื่นถูกบล็อก

คุณสมบัติการแสดง

ประเภทระยะทางการแสดง

พร็อพเพอร์ตี้ Humanoid.DisplayDistanceType จะตั้งค่าว่าผู้ใช้จะเห็นชื่อ/สุขภาพของตัวละครอื่นในความสัมพันธ์กับตัวละครของตนเองอย่างไร

ผู้ชม

เมื่อ DisplayDistanceType ของมนุษย์ตั้งค่าเป็น HumanoidDisplayDistanceType.Viewer มันจะเห็นชื่อ/สุขภาพของมนุษย์อื่นภายในระยะที่เท่ากับ NameDisplayDistance และ HealthDisplayDistance ของมัน คุณสามารถพิจารณาว่านี่คือความสำคัญต่ำสุดเนื่องจากจะไม่ถูกนำมาคำนึงถึงสำหรับมนุษย์อื่นที่ถูกกำหนดเป็น subject หรือ none

ในสถานการณ์ต่อไปนี้ ตัวละครของผู้ใช้ (Viewer) มี NameDisplayDistance ที่ใหญ่กว่าของ HealthDisplayDistance ตามที่แสดงโดยวงกลม ดังนั้นผู้ใช้จึงเห็นชื่อของตัวละครทั้ง Watchman และ Octavia แต่เห็นแถบสุขภาพของ Watchman เท่านั้น

วิชา

เมื่อ DisplayDistanceType ของมนุษย์ตั้งค่าเป็น HumanoidDisplayDistanceType.Subject มันจะควบคุม ความสำคัญเต็มที่ ต่อการแสดงชื่อและสุขภาพของตัวเองผ่านค่าสำหรับ NameDisplayDistance และ HealthDisplayDistance โดยมีมนุษย์อื่นจะมองเห็นชื่อ/สุขภาพของวิชาเพียงภายในระยะเหล่านั้นจากมนุษย์ subject

ในสถานการณ์ต่อไปนี้ ทั้ง Watchman และ Octavia ถูกตั้งค่าเป็น Subject และระยะ NameDisplayDistance ของพวกเขาถูกกำหนดโดยวงกลม ชื่อ Octavia เท่านั้นที่เห็นโดยผู้ใช้ซึ่งตัวละครของเขายืนอยู่ในระยะของเธอแต่ด้านนอกของระยะมนุษย์ Watchman

ไม่มี

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

ประเภทการแสดงสุขภาพ

พร็อพเพอร์ตี้ Humanoid.HealthDisplayType จะให้ควบคุมเพิ่มเติมเกี่ยวกับความสามารถในการมองเห็นของบาร์สุขภาพของตัวละคร บาร์จะแสดงถึง Health ของมนุษย์ในฐานะที่เป็นอัตราส่วนกับ MaxHealth ของมันและมันจะเปลี่ยนสีจากเขียวไปเหลืองไปแดงเมื่อสุขภาพของมนุษย์ลดน้อยลง

เปิดเสมอ

เมื่อ 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 ถูกซ่อนอยู่หลังเสาหินอย่างเพียงพอ Watchman ถูกตั้งค่าเป็น OccludeAll ดังนั้นชื่อและสุขภาพของมันถูกซ่อนจากมนุษย์ที่มองเห็น ในขณะที่ Octavia ถูกตั้งค่าเป็น NoOcclusion และชื่อ/สุขภาพของเธอยังคงมองเห็นได้ต่อมนุษย์ที่มองเห็น

การปิดบังศัตรู

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

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

ปรับเปลี่ยนการแสดงตัวละคร

อวตารผู้ใช้

ในการปรับแต่งชื่อหรือการแสดงสุขภาพสำหรับอวตารที่เข้ามาทุกรายในเกม เชื่อมต่อ Players.PlayerAdded และ Player.CharacterAdded อีเวนต์ใน Script และตั้งค่าคุณสมบัติการแสดง คุณสมบัติ ที่มนุษย์ของตัวละคร

Script - การปรับแต่งทั่วโลก

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 studs
humanoid.NameDisplayDistance = 20
-- ตั้งค่าระยะการแสดงบาร์สุขภาพเป็น 15 studs
humanoid.HealthDisplayDistance = 15
-- แสดงบาร์สุขภาพเมื่อมนุษย์ได้รับความเสียหายเท่านั้น
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

คุณยังสามารถปรับแต่งคุณสมบัติตาม Team ของผู้เล่น เช่น การตั้งค่าผู้เล่น "ยาม" ทั้งหมดเป็นชื่อทั่วไป และซ่อนชื่อของผู้เล่น "นินจา" ทั้งหมด

Script - การปรับแต่งทีม

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 ที่ถูกวางไว้ในโลก 3 มิติอยู่แล้ว คุณสามารถแก้ไขชื่อ/สุขภาพโดยตรงบนวัตถุ Humanoid ในหน้าต่าง คุณสมบัติ

การแทนที่ชื่อการแสดง

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

ตั้งค่าโดยตรง

คุณสามารถตั้งค่า DisplayName ของอินสแตนซ์ Humanoid ใด ๆ ที่คุณอ้างถึงผ่าน Script เช่นตัวอย่าง การปรับแต่งทีม หรือโดยตรงบนวัตถุ Humanoid ของตัวละคร NPC

ตั้งค่าผ่านการป้อนข้อมูลของผู้ใช้

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

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

LocalScript - เรียกเหตุการณ์ระยะไกล

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - กำหนดชื่อที่กรองแล้ว

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)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ