Tên nhân vật / Hiển thị sức khỏe

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Cú đối tượng Humanoid được sử dụng để tạo mô hình nhân vật, đối với cả avatar người dùng và NPC. Khi một Humanoid được hiện diện bên trong một Model có các thành phần

Character display information above an in-experience avatar

Thông qua các Humanoid thuộc tính, bạn có thể điều chỉnh các thứ theo dõi:

  • Khoảng cách khoảng cách mà người dùng có thể thấy tên / sức khỏe của các hình người khác liên quan đến nhân vật của họ.
  • The tên hiển thị which shows over a humanoid.
  • Dù dòng sức khỏe của một humanoid luôn xuất hiện, không bao giờ xuất hiện hoặc chỉ xuất hiện khi humanoid bị hư hỏng.
  • Whether names and health bars are bị che kín (ẩn) khi dòng nhìn giữa máy ảnh và một người nào đó khác có kích thước lớn hơn.

Hiển thị Thuộc tính

Hiển thị loại khoảng cách hiển thị

Các đặt tính Humanoid.DisplayDistanceType cho phép người dùng xem tên / sức khỏe của những nhân vật khác liên quan đến nhân vật của họ.

Người xem

Khi một hình người được đặt để DisplayDistanceType trong khi Enum.HumanoidDisplay

Trong tình huống sau đây, nhân vật của người dùng ( Viewer ) có một kích thước NameDisplayDistance lớn hơn Class.Humanoid.HealthDisplayDistance|HealthDisplayDistance

Chủ đề

Khi một hình người của Class.Humanoid.DisplayDistanceType|Displ

Trong tình huống sau đây, cả WatchmanOctavia đều được thiết lập là Subject và các khoảng cách 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> của họ được chỉ bởi

Không có

Khi một hình người của DisplayDistanceType được đặt thành HumanoidDisplayDistanceType.None , thì các dòng tên và dòng chân của nó không

Loại hiển thị sức khỏe

Thuộc tính Humanoid.HealthDisplayType kiểm soát thêm về sự hiển thị dòng sức khỏe của nhân vật. Dòng thuộc tính phản ánh sức khỏe của nhân vật Health như một yếu tố của s

Luôn luôn

Khi một hình người được đặt để HealthDisplayType để HumanoidHealthDisplayType.AlwaysOn thì thanh sức khỏe của nó luôn xuất hiện.

Hiển thị khi bị hỏng

Một hình người với HealthDisplayType được cài đặt để Class.Humanoid.Health|

Luôn luôn tắt

Khi một hình người được đặt để HealthDisplayType để HumanoidHealthDisplayType.AlwaysOff , thì thanh sức khỏe của nó không bao giờ xuất hiện dưới bất kỳ điều kiện nào.

Tắt

Ẩn (ẩn) của các tên người hình đằng sau bức tường hoặc các thiết bị khác được điều khiển bởi thuộc tính Humanoid.NameOcclusion của nhân vật.

KhôngOcclusion

Khi một hình người được ẩn đằng sau một vật thể có thể nhìn thấy và NameOcclusion của nó được đặt thành NameOcclusion.NoOcclusion , tên và sức khỏe của nó không bao giờ bị che giấu khi xem hình người.

Trong tình huống sau đây, cả WatchmanOctavia đều được đặt NoOcclusion . Mặc dù cả hai đều được ẩn đủ sau các cột đá, nhưng người xem hình người vẫn có thể thấy hiển thị tên / sức khỏe của họ.

Bỏ chọn tất cả

Khi một hình người được ẩn đằng sau một thể hiện có thể thấy và NameOcclusion được đặt thành NameOcclusion.OccludeAll , tên và sức khỏe của nó luôn luôn bị che giấu khỏi khỏi tầm mắt của ngườ

Trong tình huống sau đây, cả WatchmanOctavia đều được giấu khỏi các cột đá. Watchman được thiết lập để 1> OccludeAll1> , vì vậy tên và sức k

Kẻ thùOcruction

Khi một hình người được ẩn đằng sau một vật thể có thể nhìn thấy và NameOcclusion của nó được đặt thành NameOcclusion.EnemyOcclusion , tên và sức khỏe của nó chỉ b

Trong tình huống sau đây, cả WatchmanOctavia đều được ẩn đủ sau các hàng đá, và cả hai được thiết lập để EnemyOcclusion . Theo hiệu ứng ng

Điều chỉnh hoạt họa nhân vật

Hình đại diện người dùng

Để điều chỉnh tên hoặc hiển thị sức khỏe cho mọi avatar đang đến trong một trải nghiệm, kết nối các sự kiện Players.PlayerAddedPlayer.CharacterAdded trong một Script và thiết lập 2>đặ

Script - Tùy chỉnh toàn cầu

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Tặng mỗi hình người đầy đủ kiểm soát về khoảng cách hiển thị tên/sức khỏe của nó
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Đặt khoảng cách hiển thị tên lên 20 studs
humanoid.NameDisplayDistance = 20
-- Đặt khoảng cách hiển thị dòng sức khỏe lên 15 studs
humanoid.HealthDisplayDistance = 15
-- Chỉ hiển thị dòng sống khi hình người bị hư hỏng
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Bạn cũng có thể tùy chỉnh các thuộc tính dựa trên các Team của người chơi, chẳng hạn như thiết lập tất cả các "guard" người chơi thành một cái tên genéric, và ẩn tên của tất cả các "ninja" người chơi.

Script - Tùy chỉnh đội

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Đặt tên của tất cả các bảo vệ thành "Guard" genéric
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Ẩn tên cho tất cả ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Nhân vật NPC

Đối với những nhân vật NPC đã được đặt trong thế giới 3D, bạn có thể chỉnh sửa tên / sức khỏe trực tiếp trên Humanoid đối tượng trong Cửa sổ Proprietades .

Tên hiển thị bị tắt

Bởi mặc định, tên hiển thị của một hình người trùng với tên Roblox của người dùng Tên hiển thị mà độc nhất và riêng biệt khỏi tài khoản của họ Tên người dùng . Để hiển thị một cái tên hoàn toàn tùy

Cài đặt trực tiếp

Bạn có thể tùy chỉnh thuộc tính DisplayName của bất kỳ Humanoid 实例 mà bạn nhận thấy thông qua một Script , ví dụ như ví dụ 1> tùy chỉ

Cài đặt qua đầu nhập của người dùng

Trong một số thể loại như quản lý nhân vật hoặc chiến đấu, bạn có thể muốn cung cấp một phương thức cho người dùng để nhập tên nhân vật của họ, tên thú cưng, v.v. đặc biệt cho trải nghiệm và không liên quan đến tên hiển thị tài khoản của họ

Một khi nhập đã được gửi, bạn có thể truyền nó cho máy chủ thông qua một sự kiện truyền xa và sau đó, trên bên máy chủ, lắng nghe sự kiện truyền xa và giao tên đã lọc cho nhân vật người dùng's Humanoid .

LocalScript - Sự kiện Fire Remote

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Gán tên đã lọc

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Tạo sự kiện xa để nhận văn bản từ khách hàng để lọc
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)