Charaktername/Gesundheitsanzeige

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Die Humanoid-Instanz wird verwendet, um Charaktermodelle zu erstellen, sowohl für Benutzer-Avatare als auch für NPCs. Wenn sich ein Humanoid in einem Model befindet, das ein Teil namens Head enthält, zeigt Roblox einen Namen und/oder eine Gesundheitsanzeige über diesem Teil an.

Charakteranzeigeinformationen über einem In-Game-Avatar

Durch verschiedene Eigenschaften von Humanoid können Sie Folgendes ändern:

  • Den Abstand, aus dem Benutzer den Namen/die Gesundheit anderer Humanoide im Verhältnis zu ihrem eigenen Charakterhumanoiden sehen können.
  • Den Anzeigennamen, der über einem Humanoiden angezeigt wird.
  • Ob der Gesundheitsbalken eines Humanoiden immer angezeigt wird, nie angezeigt wird oder nur angezeigt wird, wenn der Humanoide Schaden erlitten hat.
  • Ob Namen und Gesundheitsbalken versteckt (verborgen) sind, wenn die Sichtlinie zwischen der Kamera und einem anderen Humanoiden blockiert ist.

Anzeigeeigenschaften

Anzeigeabstandstyp

Die Humanoid.DisplayDistanceType-Eigenschaft legt fest, wie Benutzer den Namen/die Gesundheit anderer Charaktere im Verhältnis zu ihrem eigenen Charakter sehen.

Betrachter

Wenn der DisplayDistanceType eines Humanoiden auf HumanoidDisplayDistanceType.Viewer eingestellt ist, sieht er den Namen/die Gesundheit anderer Humanoide innerhalb des Bereichs seiner eigenen NameDisplayDistance und HealthDisplayDistance. Sie können dies als die niedrigste Priorität betrachten, da es nicht für andere Humanoide berücksichtigt wird, die als Subjekt oder keine konfiguriert sind.

Im folgenden Szenario hat der Charakter des Benutzers (Viewer) einen größeren NameDisplayDistance als HealthDisplayDistance, wie durch die Kreise angezeigt. Infolgedessen sieht der Benutzer die Charakternamen sowohl für Watchman als auch für Octavia, sieht jedoch nur einen Gesundheitsbalken für Watchman.

Subjekt

Wenn der DisplayDistanceType eines Humanoiden auf HumanoidDisplayDistanceType.Subject eingestellt ist, hat er vollständige Kontrolle über seine eigene Namen- und Gesundheitsanzeige durch seine Werte NameDisplayDistance und HealthDisplayDistance. Effektiv werden andere Humanoide nur den Namen/die Gesundheit des Subjekts innerhalb dieser Entfernungen vom Subjekt-Humanoiden sehen.

Im folgenden Szenario sind sowohl Watchman als auch Octavia auf Subjekt eingestellt, und ihre Bereiche für NameDisplayDistance sind durch die Kreise angezeigt. Nur der Name Octavia wird von dem Benutzer gesehen, dessen Charakter sich innerhalb ihres Bereichs, aber außerhalb des Bereichs des Humanoiden Watchman befindet.

Keine

Wenn der DisplayDistanceType eines Humanoiden auf HumanoidDisplayDistanceType.None eingestellt ist, erscheinen sein Name und der Gesundheitsbalken unter keinen Umständen. Im folgenden Szenario sind sowohl Watchman als auch Octavia auf Keine eingestellt, sodass der andere Charakter ihren Namen oder ihre Gesundheit selbst dann nicht sieht, wenn er sich im Bereich befindet.

Gesundheitsanzeigetyp

Die Humanoid.HealthDisplayType-Eigenschaft bietet weitere Kontrolle über die Sichtbarkeit des Gesundheitsbalkens des Charakters. Der Balken spiegelt die Health des Humanoiden als Faktor seiner MaxHealth wider und ändert seine Farbe von grün über gelb zu rot, während die Gesundheit des Humanoiden abnimmt.

ImmerEin

Wenn der HealthDisplayType eines Humanoiden auf HumanoidHealthDisplayType.AlwaysOn eingestellt ist, erscheint sein Gesundheitsbalken immer.

AnzeigenBeiSchaden

Ein Humanoide mit HealthDisplayType, das auf HumanoidHealthDisplayType.DisplayWhenDamaged eingestellt ist, zeigt nur einen Gesundheitsbalken an, wenn seine Health geringer ist als seine MaxHealth. Im folgenden Szenario hat Watchman volle Gesundheit und zeigt keinen Gesundheitsbalken an, während Octavia um 50 % beschädigt ist und einen gelben Gesundheitsbalken anzeigt.

ImmerAus

Wenn der HealthDisplayType eines Humanoiden auf HumanoidHealthDisplayType.AlwaysOff eingestellt ist, erscheint sein Gesundheitsbalken unter keinen Umständen.

Okklusion

Die Okklusion (Verbergung) von Humanoidnamen hinter Wänden oder anderen Objekten wird durch die Humanoid.NameOcclusion-Eigenschaft des Charakters gesteuert.

KeineOkklusion

Wenn ein Humanoide hinter einem sichtbaren Objekt versteckt ist und seine NameOcclusion auf NameOcclusion.NoOcclusion eingestellt ist, sind sein Name und seine Gesundheit niemals für sichtbare Humanoide okkludiert.

Im folgenden Szenario sind sowohl Watchman als auch Octavia auf KeineOkklusion eingestellt. Obwohl beide ausreichend hinter steinernen Säulen versteckt sind, sieht der sichtbare Humanoide weiterhin ihre Namen/Gesundheitsanzeigen.

OkkludiereAlle

Wenn ein Humanoide hinter einem sichtbaren Objekt versteckt ist und seine NameOcclusion auf NameOcclusion.OccludeAll eingestellt ist, sind sein Name und seine Gesundheit immer für sichtbare Humanoide okkludiert.

Im folgenden Szenario sind sowohl Watchman als auch Octavia ausreichend hinter steinernen Säulen versteckt. Watchman ist auf OkkludiereAlle eingestellt, sodass sein Name und seine Gesundheit vor dem sichtbaren Humanoiden verborgen sind. Octavia hingegen ist auf KeineOkklusion eingestellt und ihr Name/Gesundheit bleibt für den sichtbaren Humanoiden sichtbar.

FeindOkklusion

Wenn ein Humanoide hinter einem sichtbaren Objekt versteckt ist und seine NameOcclusion auf NameOcclusion.EnemyOcclusion eingestellt ist, sind sein Name und seine Gesundheit nur vor feindlichen Humanoiden (Spielern in einem anderen Team) okkludiert.

Im folgenden Szenario sind sowohl Watchman als auch Octavia ausreichend hinter steinernen Säulen versteckt und beide sind auf FeindOkklusion eingestellt. Der sichtbare Humanoide und Watchman befinden sich im selben Team, sodass keine Namen/Gesundheitsokklusion auftritt. Der Name und die Gesundheit von Octavia, die im gegnerischen Team ist, sind jedoch okkludiert.

Charakteranzeigen ändern

Benutzer-Avatare

Um die Namen- oder Gesundheitsanzeige für jeden eingehenden Avatar in einem Spiel zu ändern, verbinden Sie die Ereignisse Players.PlayerAdded und Player.CharacterAdded in einem Script und setzen Sie die Anzeigeeigenschaften des Humanoid des Charakters.

Script - Globale Anpassung

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Geben Sie jedem Humanoiden die volle Kontrolle über den Abstand seiner Namen/Gesundheitsanzeige
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Setzen Sie die Namensanzeige auf einen Abstand von 20 Steinchen
humanoid.NameDisplayDistance = 20
-- Setzen Sie den Abstand des Gesundheitsbalkens auf 15 Steinchen
humanoid.HealthDisplayDistance = 15
-- Zeigen Sie den Gesundheitsbalken nur an, wenn der Humanoide beschädigt ist
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Sie können auch Eigenschaften basierend auf dem Team eines Spielers anpassen, z. B. indem Sie alle "Wachmann"-Spieler einen generischen Namen zuweisen und die Namen aller "Ninja"-Spieler ausblenden.

Script - Team-Anpassung

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Setzen Sie den Namen aller Wachleute auf den generischen "Wachmann"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Blenden Sie den Namen aller Ninjas aus
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

NPC-Charaktere

Für bereits im 3D-Welt platzierten NPC-Charaktere können Sie den Namen/die Gesundheit direkt im Eigenschaftenfenster des Humanoid-Objekts bearbeiten.

Anzeigennamen überschreiben

Standardmäßig entspricht der Anzeigename eines Humanoiden dem Anzeigenamen des Benutzers, der einmalig und von seinem Benutzernamen getrennt ist. Um einen vollständig benutzerdefinierten Namen anzuzeigen, der nicht mit dem Benutzerkonto des Benutzers verknüpft ist, können Sie die Humanoid.DisplayName-Eigenschaft überschreiben.

Direkt setzen

Sie können die DisplayName-Eigenschaft jeder Humanoid-Instanz setzen, auf die Sie über ein Script zugreifen, wie im Beispiel der Teamanpassung oder direkt im Humanoid-Objekt eines NPC-Charakters.

Über Benutzereingabe setzen

In einigen Genres wie Rollenspielen oder Kämpfen möchten Sie möglicherweise eine Methode bereitstellen, damit Benutzer ihre eigenen Charakternamen, Haustiercharakternamen usw. eingeben können, die spezifisch für die Erfahrung sind und nicht mit ihrem Anzeigenamen verknüpft sind. Sie können diese Eingabe auf der Client-Seite über ein TextBox-Feld zur Namenseingabe erfassen.

Sobald die Eingabe übermittelt wurde, können Sie sie über ein Remote-Ereignis an den Server senden und dann auf der Serverseite auf das Remote-Ereignis hören und den gefilterten Namen dem Humanoid des Benutzercharakters zuweisen.

LocalScript - Remote-Ereignis auslösen

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Filtrierten Namen zuweisen

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Erstellen Sie ein Remote-Ereignis, um Text vom Client für die Filterung zu empfangen
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, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.