Karakter adı/sağlık görüntüsü

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Humanoid örneği, kullanıcı avatarları ve NPC'ler için karakter modelleri oluşturmak için kullanılır.Bir Humanoid içinde bir parça adında Model olan bir Baş içeren bir var olduğunda, Roblox bu parçanın üzerinde bir isim ve/veya sağlık çubuğu görüntüler.

Character display information above an in-experience avatar

Çeşitli Humanoid özellikler aracılığıyla, takip edilendeğiştirebilirsiniz:

  • Kullanıcıların kendi karakterlerinin insanoid'ine ilişkin diğer insanoidlerin adını/sağlığını görebilecekleri mesafe.
  • Bir insansızın üzerinde görünen görüntü adı.
  • Bir insansızın sağlık çubuğu her zaman görünür, hiç görünmez veya sadece insansız hasar gördüğünde görünür
  • Kamera ve diğer bir insansız arasındaki görüş hattı engellendiğinde, isim ve sağlık çubukları kapatılmış olur (gizli) (görüş hattı engellendiğinde).

Özellikleri görüntüle

Görüntü mesafesi yaz

The Humanoid.DisplayDistanceType özellikleri, kullanıcıların kendi karakterleriyle ilgili diğer karakterlerin adını/sağlığını nasıl gördüğünü belirler.

İzleyici

Bir insansızın DisplayDistanceType 'si, kendi HumanoidDisplayDistanceType.Viewer 'sine ve NameDisplayDistance 'sine yakın diğer insanoidlerin adını/sağlığını görür, HealthDisplayDistance .Bunu, diğer insansızlar konu veya hiçbiri olarak yapılandırılmış olmadığı için en düşük öncelik olarak düşünebilirsiniz.

Aşağıdaki senaryoda, kullanıcının karakteri ( Görüntüleyici ) çemberler tarafından gösterildiği gibi daha büyük bir ye sahiptir, çünkü çemberler tarafından belirtilmiştir.sonuçolarak, kullanıcı hem Watchman hem de Octavia için karakter isimlerini görür, ancak yalnızca Watchman için bir sağlık çubuğu görür.

Konu

Bir insansızın DisplayDistanceType 'si HumanoidDisplayDistanceType.Subject 'ye ayarlandığında, kendi adı ve sağlık görüntüsü üzerinde tam kontrol sağlar ve NameDisplayDistance ve HealthDisplayDistance değerleri aracılığıyla.Etkili olarak, diğer insansızlar sadece konunun adını/sağlığını bu konu insansızdan mesafeler içinde görecekler.

Aşağıdaki senaryoda, hem Gözcü hem de Octavia Konu olarak ayarlanmıştır ve yuvaları çemberlerle gösterilmiştir.Yalnızca adı Octavia olan kullanıcının karakteri onun menzilinin içinde duruyor, ancak İzci insanoid'in menzilinin dışında.

Hiçbiri

Bir insansızın DisplayDistanceType 'si HumanoidDisplayDistanceType.None 'ye ayarlandığında, adı ve sağlık çubuğu her durumda görünmez.Aşağıdaki senaryoda, hem Gözcü hem de Octavia Hiçbiri olarak ayarlanmıştır, bu nedenle diğer karakter menzilde bile isimlerini veya sağlıklarını görmez.

Sağlık gösterim yaz

The Humanoid.HealthDisplayType özelliği, karakterin sağlık çubuğu görünürlüğü üzerinde daha fazla kontrol sağlar.Bar, insansızın ını bir faktör olarak yansıtır ve insansızın sağlığı azaldıkça renkleri yeşilden sarıya kırmızıya değiştirir.

Her ZamanAçık

Bir insansızın HealthDisplayType 'si HumanoidHealthDisplayType.AlwaysOn 'ye ayarlandığında, sağlık çubuğu daima görünür.

Hasar Gördüğünde Görüntüle

Bir insansız ile HealthDisplayType ayarlandı HumanoidHealthDisplayType.DisplayWhenDamaged sadece sağlık çubuğunu gösterir, çünkü Health ondan daha az MaxHealth.Aşağıdaki senaryoda, Gözcü tüm sağlığa sahiptir ve bir sağlık çubuğu görüntülemez, ancak Octavia %50 hasar görür ve sarı bir sağlık çubuğu görüntüler.

Her zaman kapalı

Bir insansızın HealthDisplayType 'si HumanoidHealthDisplayType.AlwaysOff 'ye ayarlandığında, sağlık çubuğu hiçbir durumda görünmez.

Kapanma

İnsansız isimlerin duvarların veya diğer nesnelerin arkasında gizlenmesi, karakterin Humanoid.NameOcclusion özelliği tarafından kontrol edilir.

NoOcclusion Yayınlandığı tarih: 2020-01-20 Güncellenme tarihi: 2020-01-20

Bir insansız bir nesnenin arkasında görünür bir nesneye gizlendiğinde ve onun NameOcclusion 'si NameOcclusion.NoOcclusion olarak ayarlanırsa, adı ve sağlığı insanoidleri görüşünden asla gizlenmez.

Aşağıdaki senaryoda, hem Gözcü hem de Octavia NoOcclusion olarak ayarlanır.Her ikisi de yeterince taş sütunların arkasında gizlenmiş olsa da, görüntüleme insansı hala adını/sağlık görüntülerini görür.

Hepsini Kapat

Bir insansız bir nesnenin arkasında görünür bir nesneye gizlendiğinde ve onun NameOcclusion 'si NameOcclusion.OccludeAll olarak ayarlanırsa, adı ve sağlığı insansızlardan daima gizlenir.

Aşağıdaki senaryoda, hem Gözcü hem de Octavia yeterince taş sütunların arkasında gizlenmiştir. Gözcü , OccludeAll olarak ayarlanmıştır, bu yüzden adı ve sağlığı izleyen insandan gizlenir.Bununla birlikte, Octavia , NoOcclusion olarak ayarlanmıştır ve adı/sağlığı görüntüleyen insanoid için görünür kalır.

DüşmanOklusyonu

Bir insansız, görünür bir nesnenin arkasına gizlendiğinde ve onun NameOcclusion 'si NameOcclusion.EnemyOcclusion olarak ayarlanırsa, adı ve sağlığı sadece düşman insansızlardan (farklı bir Team oyuncudan) gizlenir.

Aşağıdaki senaryoda, hem Gözcü hem de Octavia taş sütunların arkasında yeterince gizlenmiştir ve her ikisi de DüşmanOkluziyonuna ayarlanmıştır.Görüntüleme insanoidi ve Gözcü aynı üzerindedir, bu yüzden isim/sağlık engeli meydana gel.Ancak, karşı takımdaki Octavia adı ve sağlığı gizlenir.

Karakter görüntülerini değiştir

Kullanıcı avatarlar

Deneyimdeki her gelen avatar için isim veya sağlık görüntüsünü değiştirmek için, ve etkinliklerini bir 'de bağlayın ve karakterin görüntü özelliklerini gösterin .

Script - Küresel Özelleştirme

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Her insansıza adı/sağlık görüntüleme mesafesi üzerinde tam kontrol verin
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- İsim görüntüleme mesafesini 20 damga olarak ayarla
humanoid.NameDisplayDistance = 20
-- Sağlık çubuğu görüntü mesafesini 15 damga olarak ayarla
humanoid.HealthDisplayDistance = 15
-- Sadece insansız hasar gördüğünde sağlık çubuğunu göster
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Ayrıca, bir oyuncunun Team ına dayanarak özellikleri özelleştirebilirsiniz, örneğin tüm "koruma" oyuncularını genel bir isme ayarlayın ve tüm "ninja" oyuncularının isimlerini gizleyin.

Script - Takım Özelleştirme

local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Tüm korumaların adını genel "Gardiyan" olarak ayarlayın
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- Tüm ninjalar için adı gizle
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

NPC karakterler

3B dünyaya zaten yerleştirilmiş NPC karakterleri için, adı/sağlığı doğrudan Humanoid nesnesindeki Özellikler penceresinde düzenleyebilirsiniz.

Görüntü adlarını geçersiz kılma

Varsayılan olarak, bir insansızın görüntü adı kullanıcının Roblox hesabına eşleşir Görüntü adı , ki bu benzersiz ve hesabından ayrıdır Kullanıcı adı .Kullanıcının hesapilgisi olmayan tamamen özel bir ismi göstermek için, Humanoid.DisplayName özelliğini geçersizleştirebilirsiniz.

Doğrudan ayarla

Bir DisplayName özniteliğini bir Humanoid aracılığıyla referans aldığınız herhangi bir Script özelliklerini ayarlayabilirsiniz, örneğin takım özelleştirme örneği veya doğrudan bir NPC karakterinin Humanoid nesnesine ayarlayabilirsiniz.

Kullanıcı girişiyle ayarlanır

Rol yapmak veya dövüş gibi bazı türlerde, kullanıcıların kendi karakter adlarını, evcil hayvan karakter adlarını girmeleri için bir yöntem sağlamak isteyebilirsiniz.bu deneyime özeldir ve hesap görüntüleme adlarına bağlı değildir.Bu girişi istemci tarafında bir TextBox isim girişi aracılığıyla toplayabilirsiniz.

Giriş gönderildikten sonra, bunu bir uzaktan etkinlik aracılığıyla sunucuya geçirebilir ve ardından sunucu tarafında uzaktan etkinliği dinleyebilir ve filtrelenmiş filtrelenmiş adını kullanıcı karakterinin Humanoid 'sine atayabilirsiniz.

YerelScript - Ateşli Uzaktan Etkinlik

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")
changeNameEvent:FireServer("Amory")
Script - Filtrelenmiş İsmi Atama

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- Filtreleme için müşteriden metin almak için uzaktan etkinlik oluştur
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)