Player
Player : Instance
Overview
Player는 서버에 접속한 각 사용자를 나타내는 객체입니다.
새로운 사용자가 접속하면 Players 서비스에 Player 객체로 등록되며, 접속이 종료되면 목록에서 자동으로 제외됩니다.
이 객체의 Name 속성에는 사용자의 닉네임이 표시되지만, 데이터 저장 시에는 닉네임 대신 UserId를 사용하는 것이 안전합니다. 닉네임은 사용자가 변경할 수 있지만 UserId는 고정되어 변경되지 않기 때문입니다.
서버에 접속한 사용자를 감지하려면 Players.PlayerAdded 이벤트를, 접속 종료를 감지하려면 Players.PlayerRemoving 이벤트를 사용합니다. 이를 통해 플레이어가 퇴장하기 직전에 데이터 저장이나 정리 작업을 안전하게 수행할 수 있습니다.
현재 서버의 모든 접속자 목록은 Players:GetPlayers() 메서드를 사용하여 가져올 수 있습니다.
Properties
Character
Model
플레이어의 아바타를 구성하는 모델 객체를 반환합니다. 해당 모델에는 Humanoid, 신체 파트, 스크립트, 그리고 아바타 동작에 필요한 다양한 요소가 포함됩니다.
Character는 Players.CharacterAutoLoads 값이 true이면 자동으로 생성되지만, false일 경우 LoadCharacter()를 호출해 수동으로 생성해야 합니다.
속성의 초기값은 nil이며, 플레이어 캐릭터가 생성되면 이 속성에 해당 모델이 할당됩니다.
캐릭터 생성 시점을 감지하려면 CharacterAdded 이벤트를, 캐릭터 제거 직전 시점을 감지하려면 CharacterRemoving 이벤트를 활용하는 것이 좋습니다.
Code Samples
local Players = game:GetService("Players")
local function OnAddPlayer(player)
repeat wait(0.1) until player.Character
local character = player.Character
end
Players.PlayerAdded:Connect(OnAddPlayer)
UserId
string
사용자의 계정을 식별하는 읽기 전용의 고유 ID를 반환합니다.
UserId는 닉네임과 달리 절대 변경되지 않으므로, DataStore를 통해 플레이어 데이터를 저장하거나 불러올 때, 계정 식별을 위한 용도로 사용됩니다.
Code Samples
local Players = game:GetService("Players")
local function OnAddPlayer(player)
print(player.UserId)
end
Players.PlayerAdded:Connect(OnAddPlayer)
Team
Team
현재 지원되지 않습니다.
Code Samples
TeamColor
BrickColor
현재 지원되지 않습니다.
Code Samples
RespawnLocation
SpawnLocation
플레이어 캐릭터가 리스폰할 SpawnLocation 객체를 설정합니다.
SpawnLocation이 아닌 일반 Part도 지정할 수 있으며, 지정한 객체는 반드시 Workspace에 속해야 합니다.
Code Samples
local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local Part = script.Parent
local Checkpoint = Workspace:WaitForChild("Checkpoint")
local function SetCheckpoint(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
local character = humanoid.Parent
local player = Players:GetPlayerFromCharacter(character)
player.RespawnLocation = Checkpoint
end
end
Part.Touched:Connect(SetCheckpoint)
Methods
GetMouse
클라이언트의 Mouse 객체를 반환합니다.
반환된 객체를 이용하여 좌/우 클릭 등 마우스 입력을 감지하고 처리할 수 있습니다.
다만, 모바일 환경에서는 UserInputService를 사용하는 것이 일반적으로 권장됩니다.
Parameters
Return
Mouse
마우스 객체입니다.
Code Samples
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()
local function OnButton1Down()
print("Button1Down", Mouse.Target)
if Mouse.Target.Name == "SpawnLocation" then
print("Hit SpawnLocation!")
end
end
Mouse.Button1Down:Connect(OnButton1Down)
LoadCharacter
플레이어의 기존 캐릭터를 제거한 뒤 새 캐릭터를 생성합니다.
플레이어를 사망 처리하지 않고 캐릭터만 재생성해야 할 때 주로 사용됩니다.
Parameters
Return
void
Code Samples
player:LoadCharacter()
RemoveCharacter
플레이어의 기존 캐릭터를 제거합니다.
RemoveCharacter()로 캐릭터가 제거되면 Character 속성은 nil로 설정되며, LoadCharacter() 메서드를 호출해야만 다시 생성할 수 있습니다.
Parameters
Return
void
Code Samples
player:RemoveCharacter()
Events
CharacterAdded
플레이어 캐릭터가 생성되거나 재생성될 때 실행되는 이벤트입니다.
이 시점에는 캐릭터의 Humanoid와 기본 신체 부위(머리, 몸통, 팔다리)는 이미 존재하지만, 의상과 액세서리(모자, 셔츠, 바지 등)는 몇 초 뒤에 추가될 수 있습니다.
플레이어의 접속이나 퇴장을 추적하려면 Players.PlayerAdded와 Players.PlayerRemoving 이벤트를 사용해야 합니다.
Parameters
Model
Character
생성된 캐릭터입니다.
Code Samples
local Players = game:GetService("Players")
local function OnEnterPlayer(player)
local function OnCharacterAdded(character)
print("[OnAddCharacter]", character)
end
player.CharacterAdded:Connect(OnCharacterAdded)
end
Players.PlayerAdded:Connect(OnEnterPlayer)
CharacterRemoving
플레이어 캐릭터가 삭제되기 직전에 실행되는 이벤트입니다.
캐릭터 객체가 사라지기 전에 필요한 작업을 수행할 때 주로 사용됩니다.
플레이어의 접속이나 퇴장을 추적하려면 Players.PlayerAdded와 Players.PlayerRemoving 이벤트를 사용해야 합니다.
Parameters
Model
Character
제거된 캐릭터입니다.
Code Samples
local Players = game:GetService("Players")
local function OnEnterPlayer(player)
local function OnCharacterRemoving(character)
print("[OnCharacterRemoving]", character)
end
player.CharacterRemoving:Connect(OnCharacterRemoving)
end
Players.PlayerAdded:Connect(OnEnterPlayer)
Last updated