Menu
CoddyTech

触れたのは誰?

CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 14/24。

hitは体のパーツで、hit.Parentはその体のパーツが属するキャラクターです。Playersサービスを使うと、キャラクターを操作しているプレイヤーを取得できます。

local Players = game:GetService("Players")
local player = Players:GetPlayerFromCharacter(hit.Parent)

接触したものがキャラクターではない場合(ボールや落下するレンガなど)、GetPlayerFromCharacterはnilを返すため、使う前に確認しましょう。

local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
	print(player.Name .. " found the secret")
end

プレイヤーを取得したら、その中にあるものなら何でも参照できます。たとえば、プレイヤーのスコアボードはplayer.leaderstats.Coins.Valueです。=を使ってValueを設定すると、値が置き換わります。

challenge icon

チャレンジ

中級

光るパッドがお宝で、このスクリプトはその中にあります。すべてのプレイヤーには、すでにleaderstatsがあり、Coinsの値は0です。

プレイヤーがお宝に触れたら、その名前を出力し、Coinsを100に設定してください。プレイヤー以外のものが触れても、エラーが発生してはいけません。

Playを押して、お宝の上に乗り、スコアボードを確認してから、Checkを押してください。

自分で試してみよう

local Players = game:GetService("Players")
local treasure = script.Parent

treasure.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	-- プレイヤーの場合、その名前を出力し、Coins を 100 に設定する
end)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Robloxゲームのスクリプティングのすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ