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

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

ตัวอย่าง Humanoid ใช้เพื่อสร้างโมเดลตัวละคร ทั้งสำหรับ avatar ของผู้ใช้และ NPCs เมื่อ Class.Humanoid ปรากฏใน Class.Model ที่มีชื่อว่า Head ร

Character display information above an in-experience avatar

ผ่านคุณสมบัติต่างๆ Humanoid กำลังติดตาม:

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

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

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

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

ผู้ดู

เมื่อ DisplayDistanceType ของมนุษย์ถูกตั้งเป็น Class.Humanoid.NameDisplayDistance|Name

ในสถานการณ์ต่อไปนี้ ตัวละครของผู้ใช้ ( ผู้ดูเหมือน ) มี NameDisplayDistance ใหญ่กว่า Class.Humanoid.

เรื่อง

เมื่อ DisplayDistanceType ของมนุษย์กำหนดเป็น Enum.HumanoidDisplayDistanceType|HumanoidDisplay

ในสถานการณ์ต่อไปนี้ Watchman และ Octavia ตั้งไว้ที่ เป้าหมาย และระยะ 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> ของพวกเขาถูกแ

ไม่มี

เมื่อ DisplayDistanceType ของมนุษย์ตั้งไว้ที่ HumanoidDisplayDistanceType.None จะไม่ปรากฏใต้สถานการณ์ใด ๆ

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

สมบัติ Humanoid.HealthDisplayType ให้การควบคุมเพิ่มเติมเกี่ยวกับความโปร่งใสของบาร์สุขภาพของตัวละคร บาร์สะท้อนสีของ humanoid เป็น Class.Humanoid.Health|

เสมอ

เมื่อ HealthDisplayType ของมนุษย์กำหนดไว้เป็น HumanoidHealthDisplayType.AlwaysOn สุขภาพบาร์ของมันจะปรากฏขึ้นเสมอ

แสดงเมื่อคุณได้รับความเสียหาย

มนุษย์ที่มี HealthDisplayType ตั้งค่าให้เป็น Enum.HumanoidHealthDisplayType|HumanoidHealth

เครื่องปิดเสมอ

เมื่อ HealthDisplayType ของมนุษย์กำหนดไว้เป็น HumanoidHealthDisplayType.AlwaysOff ไม่เคยปรากฏใต้สถานการณ์ใด ๆ ก็ตาม

การปิด

การซ่อนชื่อของมนุษย์หลังผนังหรือวัตถุอื่น ๆ จะได้รับการควบคุมโดยโปรไฟล์ Humanoid.NameOcclusion ของตัวละคร

NoOcclusion ไม่

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

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

ปิดการใช้งานทั้งหมด

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

ในสถานการณ์ต่อไปนี้ Watchman และ Octavia ถูกซ่อนอยู่เบื้องหลังของโคลัมน์หิน Watchman ตั้งค่าเป็น 1> ปิดการโอเคล็อ

EnemyOcclusion

เมื่อเซ็นเซอร์มนุษย์ถูกซ่อนอยู่หลังวัตถุที่มองเห็นได้และเป้าหมาย NameOcclusion ตั้งค่าไว้ที่ NameOcclusion.EnemyOcclusion ชื่อแล

ในสถานการณ์ต่อไปนี้ Watchman และ Octavia ถูกซ่อนอยู่เบื้องหลังของโคลัมน์หินทั้งสองและทั้งสองถูกตั้งไว้เป

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

Avatar ผู้ใช้

เพื่อปรับแต่งการแสดงชื่อหรือสถานะสุขภาพสำหรับแต่ละอวตารในประสบการณ์, เชื่อมต่อเหตุการณ์ Players.PlayerAdded และ Player.CharacterAdded ใน 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 สตุ๊ด
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
-- ตั้งชื่อของผู้พิทักษ์ทั้งหมดเป็น "ผู้พิทักษ์" ทั่วไป
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 ในหน้าต่าง โปรพีเพอร์ตี้

การเปลี่ยนชื่อ Display ทั่วไป

ตามปกติ, ชื่อจอของมนุษย์จะตรงกับบัญชี Roblox ของผู้ใช้ ชื่อจอ ซึ่งเป็นเอกลักษณ์และแยกออกจากบัญชีของผู้ใช้ ชื่อผู้ใช้ เพื่อแสดงชื่อที่

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

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

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

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

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

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

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)