プレイヤーのキャラクターモデルから、Playerを取得する方法です。
local function onTouch(otherPart)
local character = otherPart.Parent
local player = game.Players:GetPlayerFromCharacter(character)
if player then
print(player.Name) -- プレイヤー名を表示
end
end
script.Parent.Touched:Connect(onTouch)
playerからHumanoidを取得 (LocalScript)
local Players = game:GetService("Players")
local character = Players.LocalPlayer.Character -- LocatScriptのみ有効
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
全プレイヤーの処理
ゲームに入ってきたばかりのプレイヤーのCharacterにはnilが入っていることがあるので、CharacterAdded:Wait()を使う必要があります。
local Players = game:GetService("Players")
for _,player in pairs(Players:GetPlayers()) do
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
-- 何かの処理をする
end