Humanoidから、Playerを取得する方法です。
local function onTouch(otherPart)
local character = otherPart.Parent
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local player = game.Players:GetPlayerFromCharacter(character)
print(player.Name) -- プレイヤー名を表示
end
end
script.Parent.Touched:Connect(onTouch)
playerからHumanoidを取得(Local Script)
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