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
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ả Watchman và Octavia đề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ả Watchman và Octavia đề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ả Watchman và Octavia đề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ả Watchman và Octavia đề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.PlayerAdded và Player.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)