Instancja Humanoid jest używana do tworzenia modeli postaci, zarówno dla postaci użytkowników, jak i NPC. Gdy Humanoid jest obecny w Model, który zawiera część nazyającą się 2>Głowa2>, Roblox wyświetla nazwę i/lub pasek zdrowia nad tą częścią.
Przez różne Humanoid właściwości możesz zmodyfikować obserwuje:
- Dystans zakresu, z którego użytkownicy mogą zobaczyć imię/zdrowie innych ludzkich w stosunku do ich własnego postaci ludzkiej.
- Nazwa wyświetlania, która pokazuje ponad humanoid.
- Czy barwa zdrowia ludoidu zawsze się pojawia, nigdy się nie pojawia lub pojawia się tylko, gdy ludoid jest uszkodzony.
- Czy linie i balki zdrowia są zablokowane (ukryte), gdy linia widzenia między kamerą a innym humanoidem jest zablokowana.
Wyświetuj właściwości
Typ dystansu wyświetlenia
Właściwość Humanoid.DisplayDistanceType ustawia sposób, w jaki użytkownicy widzą imię/zdrowie innych postaci w odniesieniu do ich własnej postaci.
Oglądacz
Gdy DisplayDistanceType zostanie ustawiony na HumanoidDisplayDistanceType.Viewer i Class.Humanoid.
W następującym scenariuszu, postać użytkownika ( widok ) ma większy NameDisplayDistance niż HealthDisplayDistance, jak pokazano przez kręgi. W wynikużytkownik
Temat
Gdy DisplayDistanceType humanoidu ustawiony na HumanoidDisplayDistanceType.Subject i Class.
W następującym scenariuszu zarówno Watchman i Octavia ustawiono na Subjekt i ich 2> Class.Humanoid.NameDisplayDistance|NameDisplayDistance2> zakresy są pokazane przez kręgi. Tylko nazwa 5> Octavia5> jest widoczna przez użytkownika, który jej
Żaden
Gdy DisplayDistanceType zostanie ustawiony na HumanoidDisplayDistanceType.None, jego nazwa i barwa zdrowia nie pojawiają się pod żadnym warunkiem. W następnym scenariuszu zarówno Watchman jak i
Typ wyświetlania zdrowia
Właściwość Humanoid.HealthDisplayType zapewnia dalszą kontrolę nad widocznością zdrowia postaci. Bar odzwierciedla zdrowie postaci Health jako czynnik jego MaxHealth i zmienia kolor z zielonego na żółty do czerwonego, gdy zdrowie postaci zmniejs
Zawsze
Gdy wartość HealthDisplayType humanoidu ustawiona jest na HumanoidHealthDisplayType.AlwaysOn, jego zdrowotna bara zawsze się pojawia.
Pokazuj kiedy jesteś uszkodzony
Humanoid z HealthDisplayType ustawiony na HumanoidHealthDisplayType.DisplayWhenDamaged tylko pokazuje
ZawszeWyłączone
Gdy wartość HealthDisplayType humanoidu ustawiona jest na HumanoidHealthDisplayType.AlwaysOff, jego bar zdrowia nigdy nie pojawia się pod żadnym warunkiem.
Okluzyj
Oczenie (ukrywanie) imion ludzkich za ścianami lub innymi obiektami jest kontrolowane przez właściwość Humanoid.NameOcclusion znaku.
NieOczenie
Gdy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion ustawiony na NameOcclusion.NoOcclusion, jego imię i zdrowie nigdy nie są zaciemnione podczas oglądania ludzi.
W następnym scenariuszu zarówno Człowiek-oglądacz i Octavia ustawiony jest na NieOczenie. Mimo że obie są wystarczająco ukryte za kamiennymi kolumnami, widok humanoidu nadal widzi ich nazwę/zdrowie wyświetlania.
Wyłącz wszystkie
Gdy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion ustawiony na NameOcclusion.OccludeAll, jego imię i zdrowie zawsze są zaciemnione podczas oglądania humanoidów.
W następnym scenariuszu zarówno Człowiek-ogród jak i Człowiek-skała są wystarczająco ukryte za kamiennymi kolumnami. Człowiek-ogród jest ustawiony na 2>OccludeAll2>, więc jego imię i zdrowie nie są widoczne dla widzące
Przeciwkościążące
Gdy humanoid jest ukryty za widocznym obiektem i jego NameOcclusion ustawiony na NameOcclusion.EnemyOcclusion , jego imię i zdrowie są tylko ocukowane od ludzkich humanoidów (graczy na innym Team ).
W następującym scenariuszu zarówno Watchman i Octavia są wystarczająco ukryte za kamiennymi kolumnami, a obie są ustawione na EnemyOcclusion. Wyglądający humanoid i 2> Watchman2> znajdują się na tym samym 5>Class.Team</
Modyfikowanie wyglądu postaci
Awatary użytkowników
Aby zmienić nazwę lub wyświetlenie zdrowia dla każdego przybywającego awatara w doświadczeniu, połącz wydarzenia Players.PlayerAdded i Player.CharacterAdded w Script i ustaw 2>werty wyświetlania2> na charakterze 5>Class.Humanoid5>.
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 jego nazwą/dystansem wyświetlania zdrowia
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Ustaw odległość wyświetlania nazwy na 20 jednostek
humanoid.NameDisplayDistance = 20
-- Ustaw odległość wyświetlania barwy zdrowia na 15 jednostek
humanoid.HealthDisplayDistance = 15
-- Pokaż tylko barwę zdrowia, gdy humanoid jest uszkodzony
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Możesz również dostosować właściwości w oparciu o Team gracza, takie jak ustawienie wszystkich graczy "guard" na genériczną nazwę i ukrycie imion wszystkich graczy "ninja".
Skrypt - Dostosowanie 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 genériczną "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ć imię / zdrowie bezpośrednio na obiekcie Humanoid w oknie Property.
Przyjmowanie imion wyświetlanych
Domyślnie nazwa wyświetlania kształtuje się zgodnie z nazwą użytkownika Roblox Display Name , która jest unikalna i odrębna od jego konta Username . Aby pokazać w pełni ni powiązaną z kontoużytkownika nazwę, możesz zmienić właściwość Humanoid.DisplayName .
Ustawienia bezpośrednio
Możesz ustawić właściwość DisplayName dowolnej instancji Humanoid, do której uzyskujesz odniesienie poprzez Script, takiego jak przykład 1>ostosowania zespołu1> lub bezpośrednio na obiekcie 4>Human
Ustawianie poprzez wejście użytkownika
W niektórych gatunkach, takich jak roleplaying lub bijatyki, można chcieć zapewnić metodę dla użytkowników, aby wpisali własne imię postaci, imię zwierzaka itp. które jest specyficzne dla doświadczenia i nie jest powiązane z ich nazwa wyświetlanawyświetlanym. Możesz zebrać to wejście na stronie klienta poprzez wpis TextBox .
Po wysłaniu wpisu możesz go przesłać na serwer poprzez zdalne wydarzenie i następnie na stronie serwera słuchać zdalnego wydarzenia i przypisać filtrowane imię użytkownikowi charakterowi Humanoid.
Lokalny Skrypt - Wydarzenie zdalne ognia
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
Skrypt - Przydziel nazwę filtrowaną
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Utwórz zdalne wydarzenie, aby otrzymać tekst z 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)