RobloxのScriptでPlayerを取得する方法

RobloxでPlayerを取得するときによく使いそうなものをまとめる

  1. ゲームに参加したプレイヤーを取得する
game.Players.PlayerAdded:Connect(function(player)
	print(player.Name)
end)

2. ゲームから離脱するプレイヤーを取得する

game.Players.PlayerRemoving:Connect(function(player)
	print(player.Name)
end)

3. LocalScriptが実行されているプレイヤーを取得する

local name = game.Players.LocalPlayer.Name
print(name)

4. UserIdからプレイヤーを取得する

local userId = 2041338481
local player = game.Players:GetPlayerByUserId(userId)
print(player.Name)

5. Characterからプレイヤーを取得する

player = game.Players:GetPlayerFromCharacter(character)
print(player.Name)

6. Humanoidからプレイヤーを取得する

-- CharacterはHumanoidの親であるため、親のCharacterからPlayerを取得する
local player = game.Players:GetPlayerFromCharacter(humanoid.Parent)
print(player.Name)

7. パーツに触れたパーツからプレイヤーを取得する

script.Parent.Touched:Connect(function(part)
	local parent = part.Parent
	local player = game.Players:GetPlayerFromCharacter(parent)
	if player ~= nil then
		print(player.Name)
	end
end)

8. ゲームに参加しているすべてのプレイヤーを取得する

local players = game.Players:GetPlayers()

for _, player in pairs(players) do
	print(player.Name)
end

補足

UserIdやCharacterでプレイヤーを取得する場合、プレイヤがーゲームに追加されている必要がある

関連

https://developer.roblox.com/en-us/api-reference/class/Players