Wyświetlanie nazwy postaci/wykres zdrowia

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Instancja Humanoid jest używana do tworzenia modeli postaci, zarówno dla awatarów użytkowników, jak i NPC.Gdy Humanoid jest obecny wewnątrz Model, który zawiera część o nazwie Głowa , Roblox wyświetla pasek nazwy i/lub zdrowia nad tą częścią.

Character display information above an in-experience avatar

Poprzez różne właściwości Humanoid możesz modyfikować obserwujeelementy:

  • Odległość z której użytkownicy mogą zobaczyć nazwę/stan zdrowia innych humanoidów w stosunku do ich własnego humanoidu postaci.
  • Nazwa wyświetlania która pokazuje się nad humanoidem, która pokazuje się nad humanoidem
  • Czy pasek zdrowia humanoida zawsze pojawia się, nigdy nie pojawia się lub pojawia się tylko wtedy, gdy humanoid jest uszkodzony.
  • Czy nazwy i paski zdrowia są ukryte (ukryte), gdy linia widoku między kamerą a innym humanoidem jest zablokowana.

Wyświetl właściwości

wpisywaćodległości wyświetlania

Właściwość Humanoid.DisplayDistanceType określa, jak użytkownicy widzą nazwę/stan zdrowia innych postaci w stosunku do ich własnej postaci.

Oglądacz

Gdy ustawienie DisplayDistanceType humanoida zostanie zmienione na HumanoidDisplayDistanceType.Viewer, zobaczy nazwę/zdrowie innych ludzi w zasięgu jego własnego NameDisplayDistance i HealthDisplayDistance .Możesz uznać to za najniższy priorytet, ponieważ nie jest brane pod uwagę dla innych humanoidów skonfigurowanych jako podmiot lub nie ma .

W następnym scenariuszu postać użytkownika ( Oglądacz ) ma większą NameDisplayDistance niż HealthDisplayDistance, jak wskazują kółka.W wynikużytkownik widzi nazwy postaci dla obu Watchman i Octavia , ale widzi tylko pasek zdrowia dla Watchman .

Temat

Gdy ustawienie DisplayDistanceType humanoida zostanie zmienione na HumanoidDisplayDistanceType.Subject , bierze pełną kontrolę nad własną nazwą i wyświetlaniem zdrowia poprzez jego wartości NameDisplayDistance i HealthDisplayDistance.Skutecznie inni ludzoidowie zobaczą nazwę/stan zdrowia tematu tylko w odległościach od tematu ludzoida.

W następnym scenariuszu zarówno strażnik i Octavia są ustawione na przedmiot i ich NameDisplayDistance są oznaczone przez okręgi.Tylko nazwa Octavia jest widziana przez użytkownika, którego postać stoi w jej zasięgu, ale poza zasięgiem Watchman humanoida.

Żadne

Gdy nazwa i pasek zdrowia humanoida DisplayDistanceType jest ustawiona na HumanoidDisplayDistanceType.None, nie pojawia się w żadnym przypadku.W następnym scenariuszu zarówno Watchman jak i Octavia są ustawione na Nic , więc drugi charakter nie widzi ich nazwy ani zdrowia nawet w zasięgu.

wpisywaćwyświetlania zdrowia

Właściwość Humanoid.HealthDisplayType zapewnia dalszą kontrolę nad widocznością paska zdrowia postaci.Pasek odzwierciedla humanoida Health jako czynnik jego MaxHealth i zmienia kolor z zielonego na żółty do czerwonego, gdy zdrowie humanoida spada.

ZawszeWłączone

Gdy pasek zdrowia humanoida jest ustawiony na , zawsze pojawia się jego pasek zdrowia.

Wyświetlanie, gdy uszkodzone

Humanoide z HealthDisplayType ustawionym na HumanoidHealthDisplayType.DisplayWhenDamaged pokazuje tylko pasek zdrowia, gdy jego Health jest mniejszy niż jego MaxHealth.W następnym scenariuszu strażnik ma pełne zdrowie i nie wyświetla paska zdrowia, ale Octavia jest uszkodzona o 50% i wyświetla żółty pasek zdrowia.

ZawszeWyłączone

Kiedy pasek zdrowia humanoida HealthDisplayType jest ustawiony na HumanoidHealthDisplayType.AlwaysOff, jego zdrowie nigdy nie pojawia się w żadnych okolicznościach.

Zamknięcie

Okluzja (ukrywanie) nazw ludzkich za ścianami lub innymi obiektami jest kontrolowana przez właściwość postaci Humanoid.NameOcclusion .

Niezablokowanie

Kiedy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion jest ustawiony na NameOcclusion.NoOcclusion, jego nazwa i zdrowie nigdy nie są ukrywane przed oglądaniem humanoidów.

W następnym scenariuszu zarówno Watchman jak i Octavia są ustawione na NoOcclusion .Chociaż oba są wystarczająco schowane za kolumnami kamienia, widzący humanoid nadal widzi ich nazwę/wyświetlanie zdrowia.

Odłącz wszystkie

Kiedy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion jest ustawiony na NameOcclusion.OccludeAll, jego nazwa i zdrowie są zawsze ukrywane przed obserwacją humanoidów.

W następnym scenariuszu oba Watchman i Octavia są wystarczająco schowane za kolumnami kamienia. Strażnik jest ustawiony na OccludeAll , więc jego nazwa i zdrowie są ukryte przed widzącym humanoidem Octavia jednak jest ustawiona na NoOcclusion i jej nazwa/zdrowie pozostaje widoczna dla ludzkiegooida widzącego.

PrzeciwnikOcclusion

Kiedy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion jest ustawiony na NameOcclusion.EnemyOcclusion, jego nazwa i zdrowie są tylko ukryte przed wrogimi humanoidami (graczami na innej Team ).

W następnym scenariuszu oba strażnik i Octavia są wystarczająco schowane za kolumnami kamienia, a oba są ustawione na EnemyOcclusion .Oglądający humanoid i Watchman są na tym samym Team, więc nie występowaćoccluzja nazwy/zdrowia.Jednak nazwa i zdrowie Octavii z przeciwnej drużyny są ukryte.

Dostosuj wyświetlanie znaków

Avatary użytkowników

Aby zmodyfikować wygląd nazwy lub zdrowia dla każdego przychodzącego awatara w doświadczeniu, połącz wydarzenia i w i ustaw właściwości wyświetlania dla postaci .

Skrypt - globalna personalizacja

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Daj każdemu humanoidowi pełną kontrolę nad odległością wyświetlania nazwy/stanu zdrowia
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Ustaw odległość wyświetlania nazwy na 20 szpilkami
humanoid.NameDisplayDistance = 20
-- Ustaw dystans wyświetlania paska zdrowia na 15 szpilkami
humanoid.HealthDisplayDistance = 15
-- Pokazuj tylko pasek zdrowia, gdy humanoid jest uszkodzony
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Możesz także dostosować właściwości w oparciu o właściwości gracza Team, takie jak ustawienie wszystkich graczy "strażników" do ogólnej nazwy i ukrycie nazw wszystkich graczy "ninja".

Skrypt - niestandardowa personalizacja zespołu

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Ustaw nazwę wszystkich strażników na ogólną "Strażnik"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Ukryj nazwę dla wszystkich ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Postacie NPC

Dla postaci NPC już umieszczonych w świecie 3D możesz edytować nazwę/zdrowie bezpośrednio na obiekcie Humanoid w oknie Właściwości.

Zastąp nazwy wyświetlania

Domyślnie nazwa wyświetlania humanoida pasuje do nazwy użytkownika Roblox, która jest unikalna i odrębna od jego konta Nazwa wyświetlania , co jest unikalne i odrębne od jego konta Nazwa użytkownika .Aby wyświetlić w pełni niestandardową nazwę, która nie jest związana z kontem użytkownika, możesz pominąć właściwość Humanoid.DisplayName.

Ustaw bezpośrednio

Możesz ustawić właściwość w dowolnej instancji , do której uzyskujesz odniesienie za pośrednictwem , takiej jak przykład dostosowania zespołu lub bezpośrednio na obiekcie Humanoid ludzkiego postaci NPC.

Ustaw poprzez wpisanie użytkownika

W niektórych gatunkach, takich jak odgrywanie roli lub bijatyki, możesz chcieć zapewnić metodę, dzięki której użytkownicy mogą wprowadzić własną nazwę postaci, nazwę zwierzaka itp.to jest specyficzne dla doświadczenia i nie jest powiązane z nazwa wyświetlanawyświetlaną na koncie.Możesz zebrać ten wpis na stronie klienta za pomocą wpisu TextBox nazwy.

Gdy wpis zostanie przesłany, możesz przekazać go na serwer za pomocą zdarzenia zdalnego remote event a następnie, po stronie serwera, posłuchaj zdarzenia zdalnego i przypisz nazwę filtrowaną do postaci użytkownika.

LocalScript - Wystrzelenie zdarzenia zdalnego

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Skrypt - przypisz filtrowaną nazwę

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Twórz zdalne wydarzenie, aby otrzymywać tekst od klienta do filtrowania
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)