Class.Humanoid 인스턴스는 사용자 아바타 및 NPC 모두에 대해 캐릭터 모델을 생성합니다. Humanoid 가 있는 Model 내에 있는 경우 Roblox는 해당 부분 위에 이름 및/또는 체력 표시 줄을 표시합니다.
다양한 Humanoid 속성을 통해 팔로잉수정할 수 있습니다.
- 사용자가 자신의 캐릭터와 관련하여 다른 인간형의 이름/상태를 볼 수 있는 거리 사이.
- 인간형 위에 표시되는 표시 이름입니다.
- 인간의 체력 바가 항상 표시되는지, 아니면 손상된 인간 때만 표시되는지.
- 카메라와 다른 인간형 사이의 시야 라인이 차단된 경우 이름 및 체력 표시줄이 숨겨져 있는지 여부.
속성 표시
표시 거리 유형
Class.Humanoid.DisplayDistanceType 속성은 사용자가 다른 캐릭터의 이름/건강과 관련하여 자신의 캐릭터에 대해 볼 수 있는 방법을 설정합니다.
보기
Class.Humanoid.DisplayDistanceType|Class.Humanoid.DisplayDistanceType 을 HumanoidDisplayDistanceType.Viewer 와 Class.Humanoid
다음 시나리오에서 사용자의 캐릭터 ( 보기 )는 원의 크기가 NameDisplayDistance 보다 큰 HealthDisplayDistance 를 가지고 있습니다
주제
인간의 DisplayDistanceType 이 인간의 이름과 체력 표시를 통해 전체 컨트롤을 수행하면
다음 시나리오에서 Watchman 및 Octavia 는 주제 로 설정되며, 그들의 1> Class.Humanoid.NameDisplayDistance|NameDisplayDistance1> 범위는 원 주위에 표시됩니다. 단지 이름 4>Octavia4> 만 해
없음
인간의 DisplayDistanceType 이 HumanoidDisplayDistanceType.None 으로 설정되면 이름 및 건강 바가 아래에 나타나지 않습니다. 다음 시나리오에서 모든
건강 상태 표시 유형
Class.Humanoid.HealthDisplayType 속성은 캐릭터의 체력 표시줄 가시성을 더 자세게 제어합니다. 표시줄은 캐릭터의 체력 표시줄 가시성을 요소로 반영하며, 캐릭터의 체력 최대치 하향 변경 및 캐릭터의 체력 하락에
항상 켜기
인간의 HealthDisplayType 가 HumanoidHealthDisplayType.AlwaysOn로 설정되면 항상 체력 표시줄이 나타납니다.
손상 시 표시
Class.Humanoid.HealthDisplayType|HealthDisplayType을 HumanoidHealthDisplayType.DisplayWhenDamaged 보다 작으면 건강 바가 표시되지 않습니
항상 끄기
인간의 HealthDisplayType 이 HumanoidHealthDisplayType.AlwaysOff 로 설정되면 그 어떤 경우에도 건강 바가 나타나지 않습니다.
닫기
벽이나 다른 개체 뒤에 있는 인형 이름의 가려짐(숨기기)은 Humanoid.NameOcclusion 속성에 의해 제어됩니다.
결함 없음
인간형이 가시 개체 뒤에 숨겨지면 그의 NameOcclusion 은 NameOcclusion.NoOcclusion 으로 설정되어 있으며, 이름과 건강은 인간형을 볼 때 결코 가려지지 않습니다.
다음 시나리오에서 Watchman 및 Octavia 는 NoOcclusion 로 설정됩니다. 두 가지 모두 충분히 숨겨져 있지만 시야 인간은 여전히 1>이름/건강1> 표시를 볼 수 있습니다.
전체 제외
인간형이 가시 개체 뒤에 숨겨지면 그의 NameOcclusion 은 NameOcclusion.OccludeAll 로 설정되어 있으므로 인간형의 이름과 상태는 항상 인간형을 보는 것에서 숨겨집니다.
다음 시나리오에서는 Watchman 및 Octavia 가 충분히 숨겨져 있는 돌 기둥 뒤에 숨겨져 있습니다. Watchman 는 1>OccludeAll1> 로 설정되므로 그녀의 이름
적의 눈
Class.Humanoid.NameOcclusion|NameOcclusion 이 NameOcclusion.EnemyOcclusion 으로 설정되면 적에게 보이지 않는 이름과 체력만 occlusion되고 플레이어에게는 occlusion되지 않습니다 (다른 Team 에서 플레이하는 플레이어).
다음 시나리오에서는 Watchman 및 Octavia 가 충분히 돌 기둥 뒤에 숨겨져 있으며 두 가지 모두 EnemyOcclusion 로 설정됩니다. 시야 인간 및 1>Watchman
캐릭터 디스플레이 수정
사용자 아바타
경험에서 모든 아바타의 이름이나 체력 표시를 수정하려면 Players.PlayerAdded 및 Player.CharacterAdded 이벤트를 Script에 연결하고 캐릭터의 2>Class.Humanoid2>에 대한 디스플레이 속성을 설정하고 5>Class.Script</
스크립트 - 전역 사용자 지정
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 각 휴머노이드에 이름/체력 표시 범위에 대한 완전한 제어 부여
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.Subject
-- 이름 표시 거리를 20개로 설정
humanoid.NameDisplayDistance = 20
-- 체력 표시 바 표시 거리를 15 studs로 설정합니다.
humanoid.HealthDisplayDistance = 15
-- 인간형이 손상된 경우 오직 체력 표시줄만 표시합니다.
humanoid.HealthDisplayType = Enum.HumanoidHealthDisplayType.DisplayWhenDamaged
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
플레이어의 Team 속성을 사용자 정의하여 모든 "가드"플레이어를 일반적인 이름으로 설정하고 모든 "닌자"플레이어의 이름을 숨길 수 있습니다.
스크립트 - 팀 사용자 정의
local Players = game:GetService("Players")
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 모든 경비원의 이름을 일반적인 "경비원"으로 설정
if player.Team.Name == "Guards" then
humanoid.DisplayName = "Guard"
-- 모든 닌자의 이름 숨기기
elseif player.Team.Name == "Ninjas" then
humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
end
end
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
NPC 캐릭터
이미 3D 세계에 배치된 NPC 캐릭터의 경우, Humanoid 개체 내의 Name 및 Health를 직접 2>Properties2> 창에서 편집할 수 있습니다.
표시 이름 재정의
기본적으로 인간의 표시 이름은 사용자의 Roblox 계정의 이름과 일치합니다 이름 이며, 계정의 이름과 별도입니다 사용자 이름 . 사용자의 계정과 관련이 없는 완전히 사용자 지정 된 이름을 표시하려면 Humanoid.DisplayName할
직접 설정
Class.Humanoid.DisplayName|DisplayName 속성을 가진 모든 Humanoid 인스턴스의 참조를 설정하는 데 사용할 수 있는 모든 속성 중 하나입니다. 예를 들어, Script 예 또는 직접
사용자 입력을 통해 설정
일부 장르, 예를 들어 롤플레이나 격투, 사용자가 자신의 캐릭터 이름, 펫 캐릭터 이름 등을 입력하는 방법을 제공하면 경험과 계정 표시 이름에 특정인 입니다. 이 입력은 클라이언트 측에서 TextBox을 통해 수집할 수 있습니다.
입력이 제출되면 원격 이벤트를 통해 서버에 전달하고 서버 측에서 원격 이벤트를 수신한 다음 필터링된 이름을 사용자 캐릭터의 Class.Humanoid에 할당하십시오.
로컬 스크립트 - 원격 이벤트 발생
local ReplicatedStorage = game:GetService("ReplicatedStorage")local changeNameEvent = ReplicatedStorage:WaitForChild("ChangeNameEvent")changeNameEvent:FireServer("Amory")
스크립트 - 필터된 이름 할당
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
-- 텍스트를 필터링하기 위해 클라이언트에서 이벤트를 원격으로 생성
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)