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 für Benutzeravatare und NPCs zu erstellen. Wenn ein Humanoid in einem Model mit dem Namen 2>Kopf2> vorhanden ist, zeigt Roblox einen Namen und/oder Gesundheitsleiste über dieser parte.

Character display information above an in-experience avatar

Durch verschiedene Humanoid-Eigenschaften können Sie die gefolgte ProfileDinge modifizieren:

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

Anzeigeprotokolle

Anzeigungs距anztyp

Die Humanoid.DisplayDistanceType Eigenschaften legen fest, wie Benutzer den Namen/die Gesundheit anderer Charaktere in Bezug auf ihren eigenen Charakter sehen.

Ansicht

Wenn ein Humanoid의 DisplayDistanceType auf HumanoidDisplayDistanceType.Viewer und Class.Humanoid.HealthDisplayDistance

Im folgenden Szenario hat der Benutzer seinen Charakter ( Viewer ) ein größeres NameDisplayDistance als HealthDisplayDistance, wie in den Kreisen angezeigt. Ergebnissieht der Benutzer die Charakternamen für beide <

Thema

Wenn ein Humanoid의 DisplayDistanceType auf HumanoidDisplayDistanceType.Subject gesetzt ist, erfordert es eine volle Kont

Im folgenden Szenario sind beide Watchman und Octavia auf Subjekt eingestellt, und ihre 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance -Reichweite werden durch die Kreise dargestellt. Nur der Name4> Octavia 4> wird vom Benutzer gesehen, der sich in ihrem Reichweite befindet, aber nicht in

Keine

Wenn ein Humanoid의 DisplayDistanceType auf HumanoidDisplayDistanceType.None eingestellt ist, erscheinen seine Namens- und Gesundheitsleiste unter keinen Bedingungen. Im folgenden Szenario sind sowohl Watchman als auch

Gesundheitsanzeigetyp

Die Eigenschaft Humanoid.HealthDisplayType bietet weitere Kontrolle über die Sichtbarkeit der Gesundheitsleiste des Charakters. Die Leiste reflektiert den Gesundheitszustand des Humanoiden als Faktor seines Health und ändert die Farbe von grün zu gelb, um die Gesundheit des Humanoiden zu verringern.

Immer an

Wenn ein Humanoid의 HealthDisplayType auf HumanoidHealthDisplayType.AlwaysOn eingestellt ist, erscheint seine Gesundheitsleiste immer.

Anzeigen, wenn beschädigt

Ein Humanoid mit HealthDisplayType set to HumanoidHealthDisplayType.DisplayWhenDamaged only shows a Gesundheitsle

ImmerOff

Wenn ein Humanoid의 HealthDisplayType auf HumanoidHealthDisplayType.AlwaysOff eingestellt ist, erscheint seine Gesundheitsleiste unter keinen Bedingungen jemals.

Okklusion

Die Verklusion (Versteckung) von menschlichen Namen hinter Wänden oder anderen Objekten wird durch die Eigenschaft Humanoid.NameOcclusion des Charakters kontrolliert.

Keine Occlusion

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

Im folgenden Szenario sind beide Watchman und Octavia auf NoOcclusion eingestellt. Obwohl beide ausreichend hinter den Stein-Säulen versteckt sind, zeigt der Ansichts-Humanoid immer noch ihren Namen/Gesundheitsanzeigen.

Alle ausschließen

Wenn ein Humanoid hinter einem sichtbaren Objekt versteckt ist und seine NameOcclusion auf NameOcclusion.OccludeAll eingestellt ist, ist sein Name und seine Gesundheit immer verborgen, wenn man Humanoiden anzeigt.

Im folgenden Szenario sind beide Watchman und Octavia ausreichend versteckt hinter den Steinkolben. Watchman ist auf 1> OccludeAll 1> eingestellt, so dass sein Name und seine Gesundheit vom Ansichtsfaktor versteckt sind. 4> Octavia 4> ist jedoch auf 7> NoOcclusion

Feindliche Oklusion

Wenn ein Humanoid hinter einem sichtbaren Objekt versteckt ist und seine NameOcclusion auf NameOcclusion.EnemyOcclusion eingestellt ist, sind sein Name und seine Gesundheit nur von feindlichen Humanoiden (Spieler auf einer anderen Team ) verborgen.

Im folgenden Szenario sind beide Watchman und Octavia ausreichend versteckt hinter den Steinkolonnen, und beide sind auf EnemyOcclusion eingestellt. Der Ansichts-Humanoid und 1> Watchman1> befinden sich auf demselben 4> Class.Team 4>, sod

Charakteranzeigen modifizieren

Benutzer-Avatare

Um den Namen oder Gesundheitszustand für jeden eingehenden Avatar in einem Erlebnis zu ändern, verbinden Sie die Players.PlayerAdded und Player.CharacterAdded Ereignisse in einem Script und setzen Sie 2>Anzeigeeigenschaften2> auf dem Charakter 5>Class.Humanoid5>.

Script - Globaler 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 vollständige Kontrolle über seine Namens-/Gesundheitsanzeige
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Setzen Sie die Namensschild-Anzeige距anz auf 20 Studs
humanoid.NameDisplayDistance = 20
-- Setzen Sie die Gesundheitsleiste-Anzeigungsreichweite auf 15 Studs
humanoid.HealthDisplayDistance = 15
-- Zeige nur die Gesundheitsleiste, wenn das Humanoid beschädigt ist
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Du kannst auch Eigenschaften basierend auf einem Spieler:in's Team anpassen, wie z. B. alle "Guard"-Spieler in einen generischen Namen zu setzen 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 Wachen auf "Guard"
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Verberge 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-Charaktere

Für NPC-Charaktere, die bereits in der 3D-Welt platziert sind, können Sie den Namen/die Gesundheit direkt auf dem Humanoid-Objekt im Eigenschaften-Fenster bearbeiten.

Übersteuern von Display-Namen

Standardmäßig entspricht der Anzeigename eines Humanoiden dem Roblox-Konto des Benutzers Anzeigename , das einzigartig und separat von ihrem Konto Benutzername ist. Um einen vollständig benutzerdefinierten Namen, der nicht mit dem Benutzerkonto verwandt ist, anzuzeigen, kannst du die EigenschaftenClass.Humanoid.DisplayName überschreiben.

Direkt einstellen

Du kannst die DisplayName Eigenschaft von jedem Humanoid Instanz, zu der du über einen Script direkt auf ein 1> NPC-Charakter1>-Objekt oder indirekt auf ein 4>Humanoid-Objekt4>-Objekt zugreifst, wie das Beispiel für

Einstellung durch Benutzer-Eingabe

In einigen Genres wie Rollenspielen oder Kampfmöchten Sie vielleicht eine Methode bereitstellen, damit Benutzer ihren eigenen Charakternamen, Haustiernamen usw. eingeben können, der spezifisch für das Erlebnis ist und nicht an ihrem Konto-Anzeigename gebunden ist. Sie können diesen Eingang auf der Client-Seite über einen TextBox-Namenseintrag sammeln.

Sobald das Eingabe abgeschickt ist, kannst du es dem Server über ein Remote-Ereignis und dann auf der Serverseite auf das Remote-Ereignis hören und dem Benutzercharakter den gefilterten Namen zuweisen.

Lokales Skript - Feuer-Remote-Ereignis

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

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Erstellen Sie ein Remote-Ereignis, um Text vom Client zum Filtern 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)