Zeichenname/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 Benutzeravatare als auch für NPCs.Wenn ein Humanoid innerhalb eines Model, der ein Teil namens Kopf enthält, vorhanden ist, zeigt Roblox einen Namen und/oder eine Gesundheitsleiste über diesem Teil an.

Character display information above an in-experience avatar

Durch verschiedene Humanoid Eigenschaften können Sie gefolgte Profilemodifizieren:

  • Die Entfernung, von der Benutzer den Namen/die Gesundheit anderer Humanoiden in Bezug auf ihren eigenen Charakter-Humanoiden sehen können.
  • Der Anzeigename, der über einem Humanoiden angezeigt wird.
  • Ob die Gesundheitsleiste eines Humanoiden immer angezeigt wird, nie erscheint oder nur erscheint, wenn der Humanoid beschädigt wird.
  • Ob Namen und Gesundheitsbalken ausgeklammert (verdeckt) sind, wenn die Sichtlinie zwischen der Kamera und einem anderen Humanoid blockiert ist.

Eigenschaften anzeigen

eingeben

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

Anzeiger

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

Im folgenden Szenario hat der Charakter des Benutzers ( Viewer ) eine größere als , wie durch die Kreise angezeigt.Als Ergebnis sieht der Benutzer Charakternamen für beide Watchman und Octavia , aber nur eine Gesundheitsleiste für Watchman .

Thema

Wenn die DisplayDistanceType eines Humanoiden auf HumanoidDisplayDistanceType.Subject gesetzt wird, nimmt es volle Kontrolle über seinen eigenen Namen und Gesundheitsanzeige durch seine NameDisplayDistance und HealthDisplayDistance Werte.Effektiv werden andere Humanoiden nur den Namen/die Gesundheit des Subjekts innerhalb dieser Entfernungen vom Subjekt Humanoid sehen.

Im folgenden Szenario sind sowohl Watchman als auch Octavia auf Thema eingestellt, und ihre NameDisplayDistance wird durch die Kreise angezeigt.Nur der Name Octavia wird vom Benutzer gesehen, dessen Charakter sich innerhalb ihrer Reichweite befindet, aber außerhalb der Reichweite des Watchman Humanoids.

Keine

Wenn die DisplayDistanceType eines Humanoiden auf HumanoidDisplayDistanceType.None gesetzt ist, erscheinen sein Name und seine Gesundheitsleiste in keinem Fall.Im folgenden Szenario sind sowohl Watchman als auch Octavia auf Nichts eingestellt, so dass der andere Charakter ihren Namen oder ihre Gesundheit nicht sieht, selbst wenn er in Reichweite ist.

eingebender Gesundheitsanzeige

Die Eigenschaft Humanoid.HealthDisplayType bietet weitere Kontrolle über die Sichtbarkeit der Gesundheitsleiste des Charakters.Die Leiste reflektiert den Humanoiden Health als Faktor seiner MaxHealth und ändert die Farbe von grün auf gelb auf rot, wenn die Gesundheit des Humanoiden sinkt.

Immer aktiv

Wenn die HealthDisplayType eines Humanoiden auf HumanoidHealthDisplayType.AlwaysOn gesetzt ist, erscheint immer seine Gesundheitsbar.

Anzeigen, wenn beschädigt

Ein Humanoid mit HealthDisplayType wird auf HumanoidHealthDisplayType.DisplayWhenDamaged nur eine Gesundheitsleiste anzeigen, wenn seine Health weniger als seine MaxHealth beträgt.Im folgenden Szenario hat Watchman volle Gesundheit und zeigt keine Gesundheitsleiste an, aber Octavia ist um 50% beschädigt und zeigt eine gelbe Gesundheitsleiste an.

Immer aus

Wenn die Gesundheitsleiste eines Humanoiden auf HealthDisplayType festgelegt ist, erscheint sie in keinem Fall unter HumanoidHealthDisplayType.AlwaysOff.

Verschluss

Die Verschleierung (Verdeckung) von menschlichen Namen hinter Wänden oder anderen Objekten wird durch das Eigenschaftenfeld des Charakters Humanoid.NameOcclusion gesteuert.

Keine Oklusion

Wenn ein Humanoid hinter einem sichtbaren Objekt versteckt wird und sein NameOcclusion auf NameOcclusion.NoOcclusion gesetzt ist, werden sein Name und seine Gesundheit niemals von der Ansicht von Humanoiden ausgeschlossen.

Im folgenden Szenario sind sowohl Watchman als auch Octavia auf NoOcclusion eingestellt.Obwohl beide ausreichend hinter Steinpfosten versteckt sind, sieht der anzeigende Humanoid immer noch ihren Namen/Gesundheitsstatus.

Alle ausklappen

Wenn ein Humanoid hinter einem sichtbaren Objekt versteckt wird und sein NameOcclusion auf NameOcclusion.OccludeAll gesetzt ist, werden sein Name und seine Gesundheit immer von der Ansicht von Humanoiden ausgeschlossen.

Im folgenden Szenario sind sowohl Watchman als auch Octavia ausreichend hinter Steinpfosten versteckt. Watchman ist auf OccludeAll eingestellt, so sind sein Name und seine Gesundheit für den betrachtenden Humanoiden verborgen. Octavia ist jedoch auf Keine Oklusion eingestellt, und ihr Name/Leben bleibt für den betrachtenden Humanoiden sichtbar.

Feind-Ausschluss

Wenn ein Humanoid hinter einem sichtbaren Objekt versteckt wird und sein NameOcclusion auf NameOcclusion.EnemyOcclusion gesetzt ist, werden sein Name und seine Gesundheit nur von feindlichen Humanoiden (Spielern auf einem anderen Team ) verdeckt.

Im folgenden Szenario sind sowohl Watchman als auch Octavia ausreichend hinter Steinpfosten versteckt, und beide sind auf Feind-Verschleierung eingestellt.Der anzeigende Humanoid und Watchman befinden sich auf derselben Team, daher tritt keine Namens-/Gesundheitsblockade auftreten.Der Name und die Gesundheit von Octavia auf dem gegnerischen Team sind jedoch ausgeklammert.

Modifizieren der Zeichenanzeigen

Benutzeravatare

Um den Namen oder die Gesundheitsanzeige für jeden eingehenden Avatar in einem Erlebnis zu modifizieren, verbinden Sie die - und -Ereignisse in einem und legen Sie Anzeigeeigenschaften auf den Charakter fest.

Skript - Globale Anpassung

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Gib jedem Humanoid volle Kontrolle über seine Namens-/Gesundheitsanzeigedistanz
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Setze die Namensanzeigendistanz auf 20 Stollen
humanoid.NameDisplayDistance = 20
-- Setze die Anzeigendistanz der Gesundheitsleiste auf 15 Stollen
humanoid.HealthDisplayDistance = 15
-- Zeige nur die Gesundheitsleiste, wenn der Humanoid beschädigt ist
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Du kannst auch Eigenschaften anpassen, basierend auf einem Spieler:in's Team, wie das Festlegen aller "Wache"-Spieler auf einen generischen Namen und das Verbergen der Namen aller "Ninja"-Spieler.

Skript - Teamanpassung

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Setze den Namen aller Wachen auf generische "Wache"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Verstecke den Namen für alle Ninjas
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

NPC-Zeichen

Für NPC-Charaktere, die bereits in der 3D-Welt platziert wurden, kannst du Name/Gesundheit direkt auf dem Humanoid in der Eigenschaften-Fenster bearbeiten.

Anzeigennamen überschreiben

Standardmäßig entspricht der Anzeigename eines Humanoiden dem Roblox-Konto des Benutzers Anzeigename , das einzigartig und von seinem Konto Benutzername getrennt ist.Um einen vollständig benutzerdefinierten Namen anzuzeigen, der nicht mit dem Konto des Benutzers verbunden ist, kannst du die EigenschaftenHumanoid.DisplayName überschreiben.

Setzen direkt

Du kannst das Eigenschaft DisplayName der beliebigen Humanoid Instanz festlegen, auf die du durch einen Script Bezug erhalten, z. B. das Beispiel Team-Anpassung oder direkt auf ein NPC-Objekt des menschlichen Humanoiden Objekts.

Durch Benutereingabe festgelegt

In einigen Genres wie Rollenspiel oder Kampf möchten Sie vielleicht eine Methode bereitstellen, mit der Benutzer ihren eigenen Charakternamen, Haustiercharakternamen usw. eingeben können.Das ist spezifisch für das Erlebnis und ist nicht an seinen Kontodisplay-Namen gebunden.Du kannst diese Eingabe auf der Clientseite durch einen TextBox Namen-Eintrag sammeln.

Sobald die Eingabe eingereicht wurde, kannst du sie durch ein Remote-Ereignis an den Server übergeben und dann auf der Serverseite auf das Remote-Ereignis hören und dem Benutzercharakter den gefilterten Namen zuweisen Humanoid .

LocalScript - Feuere remotes Ereignis

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Skript - Filternamen zuweisen

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Erstellen eines Remote-Ereignisses, um Text vom Client für die Filterung zu erhalten
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)