Instansi Humanoid digunakan untuk membuat model karakter, baik untuk avatar pengguna dan NPC. Saat Humanoid hadir di dalam Model yang berisi bagian bernama 1> Kepala1>, Roblox menampilkan nama dan/atau bar kesehatan di atas bagian itu.
Melalui berbagai Humanoid属性, Anda dapat mengubah mengikuti:
- Jarak dari mana pengguna dapat melihat nama/kesehatan dari humanoid lain dalam hubungannya dengan karakter mereka sendiri humanoid.
- Nama tampilan yang menunjukkan lebih dari seorang manusia.
- Apakah bar kesehatan manusia selalu muncul, tidak pernah muncul, atau hanya muncul saat manusia rusak.
- Apakah garis dan bar kesehatan ditutup ketika garis pandangan antara kamera dan manusia lainnya diblokir.
Jendela Propinsi
Jenis Jarak Tampilan
Properti Humanoid.DisplayDistanceType menentukan cara pengguna melihat nama/kesehatan karakter lain dalam hubungannya dengan karakter mereka sendiri.
Pengunjung
Ketika DisplayDistanceType dari manusia ditetapkan menjadi HumanoidDisplayDistanceType.Viewer dan Class
Dalam skenario berikut, karakter pengguna ( Viewer ) memiliki lebih banyak NameDisplayDistance daripada HealthDisplayDistance, seperti yang ditunjukkan oleh lingkaran. Sebagai
Subjek
Ketika DisplayDistanceType dari manusia di set ke HumanoidDisplayDistanceType.Subject dan Class.H
Dalam skenario berikut, kedua Watchman dan Octavia ditetapkan menjadi Subjek dan kedua 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> jangkauan dinyatakan oleh lingkaran. Hanya nama 4> Octavia4> yang dilihat ole
Tidak ada
Ketika DisplayDistanceType manusia di set ke HumanoidDisplayDistanceType.None , maka nama dan bar kesehatannya tidak muncul di bawah kondisi apa pun. Dalam skenario berikut, kedua Watchman
Jenis Tampilan Kesehatan
Properti Humanoid.HealthDisplayType menyediakan lebih banyak kontrol atas visibilitas bar kesehatan karakter. Bar mengambil refleksi kesehatan Health sebagai faktor dari kesehatannya MaxHealth dan itu mengubah warna dari hijau ke kuning
Selalu Aktif
Ketika HealthDisplayType manusia di set ke HumanoidHealthDisplayType.AlwaysOn , maka bar kesehatannya selalu muncul.
Tampilkan Saat Rusak
Sebuah humanoid dengan HealthDisplayType tetap set ke HumanoidHealthDisplayType.DisplayWhenDamaged
Selalu Matikan
Ketika HealthDisplayType manoid diatur ke HumanoidHealthDisplayType.AlwaysOff, bar kesehatannya tidak pernah muncul di bawah kondisi apa pun.
Oklusi
Ocклюasi (menyembunyikan) nama manusia di balik dinding atau objek lainnya dikendalikan oleh properti Humanoid.NameOcclusion karakter.
Tidak ada Occlusion
Ketika seorang humanoid tersembunyi di balik objek yang terlihat dan NameOcclusion tetap set ke NameOcclusion.NoOcclusion, nama dan kesehatannya tidak pernah terblokir dari melihat humanoid.
Dalam skenario berikut, kedua Watchman dan Octavia diatur untuk NoOcclusion . Meskipun kedua tersebut cukup tersembunyi di balik kolom batu, namun manusia yang menonton masih melihat nama/kesehatan mereka.
Nonaktifkan Semua
Ketika seorang humanoid tersembunyi di balik objek yang terlihat dan NameOcclusion tetap set ke NameOcclusion.OccludeAll, nama dan kesehatannya selalu tersembunyi saat melihat humanoid.
Dalam skenario berikut, kedua Watchman dan Octavia tersembunyi cukup di balik kolom batu. Watchman diatur untuk 1> OccludeAll 1>, jadi nama dan kesehatannya tersembunyi dari humanoid yang melihat. 4> Octavia ', namun, diatur untuk 7>
Oklusi Musuh
Ketika seorang manusia disembunyikan di balik objek yang terlihat dan namanya NameOcclusion ditetapkan menjadi NameOcclusion.EnemyOcclusion, namanya dan kesehatannya hanya diblokir dari manusia pemain (pemain di Class.Team yang berbeda).
Dalam skenario berikut, kedua Watchman dan Octavia tersembunyi cukup di balik kolom batu, dan kedua EnemyOcclusion . Humanoid pemandangan dan 1> Watchman1> berada di tim yang sama, jadi occlusive nama/kesehatan tidak ter
Mengubah Karakter yang Diberikan
Avatar Pengguna
Untuk mengubah nama atau tampilan kesehatan untuk setiap avatar yang masuk dalam pengalaman, hubungkan acara Players.PlayerAdded dan Player.CharacterAdded dalam Class.Script dan tetapkan Script properti tampilan pada karakter 1> Class.Humanoid1> .
Skrip - Kustomisasi Global
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Berikan setiap manusia pengendalian penuh atas nama / kesehatannya
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- Tetapkan jarak tampilan nama sebesar 20 stud
humanoid.NameDisplayDistance = 20
-- Tetapkan jarak tampilan bar kesehatan menjadi 15 stud
humanoid.HealthDisplayDistance = 15
-- Hanya tampilkan bar kesehatan saat humanoid rusak
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Anda juga dapat menyesuaikan propinsi berdasarkan nama pemainnya Team, seperti menetapkan semua pemain "penjaga" ke nama yang genéric, dan menyembunyikan nama semua pemain "ninja".
Skrip - Kustomisasi Tim
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Tetapkan nama semua penjaga menjadi "Penjaga" umum
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Sembunyikan nama untuk semua ninja
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Karakter NPC
Untuk karakter NPC yang sudah ditempatkan di dunia 3D, Anda dapat mengedit nama/kesehatan langsung di objek Humanoid di jendela Property.
Menggeser Nama Layar
Secara default, nama tampilan manusia bercocok dengan akun Roblox pengguna Nama Tampilan yang unik dan berbeda dari akun mereka Username . Untuk menunjukkan nama yang sepenuhnya khusus yang tidak terkait dengan akun pengguna, Anda dapat mengatasi property Humanoid.DisplayName.
Mengatur Secara Langsung
Anda dapat mengatur DisplayName properti dari setiap Humanoid instansi yang Anda dapatkan referensi melalui Script, seperti contoh 1> kustomisasi tim1>, atau langsung di objek 4> Humanoid4> pada
Mengatur Melalui Masukan Pengguna
Di beberapa genre seperti roleplaying atau pertarungan, Anda mungkin ingin memberikan metode bagi pengguna untuk memasukkan nama karakter mereka sendiri, nama hewan peliharaan, dll. yang spesifik untuk pengalaman dan tidak terikat dengan nama displayakun mereka. Anda dapat mengumpulkan input ini di sisi klien melalui entri nama TextBox.
Setelah input diSubmit, Anda dapat menyimpannya ke server melalui acara remote dan kemudian, di sisi server, dengarkan acara remote dan asign nama yang disaring ke karakter pengguna Class.Humanoid .
Skrip Lokal - Acara Remote Kebakaran
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
Skrip - Assign Nama Ter필tern
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Buat acara remote untuk menerima teks dari klien untuk disaring
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)