Roblox Studioでは、スクリプトはLUAに準じます。
ここでは書き方についてのメモを置いておきます。
LUAの書き方
LUAとは?
LUAはポルトガル語で月という意味。リオデジャネイロ・カトリカ大学のメンバーらによって開発されたプログラミング言語です。
LUAを組み込んだシステムはいろいろとあり、Robloxでも採用されています。
コメントアウト
1行は行頭に「--」をいれます。
-- print("test")
複数行は「--」「--」で囲みます。
--[[
print("A")
print("B")
--]]
文字操作
連結は「..」を使います。
s1 = "日本の首都は "
s2 = "東京"
S3 = s1 .. s2
変数
変数はint、stringなど区分せずに「local」でいくようです。
local a= 1
IF
IF文も利用できます。「if ~ then」「end」ではさみます。
if x == 1 then
print("OK")
end
「&&」は「AND」、「||」は「OR」です。
「elseif」も利用可能。
「x ~= y」のように 「~=」が使われる場合があります。これはC言語などでは「!=」であり、xがyと等しくないことを表します。
関数
関数も「local」として定義できます。
local function sampleFunc(number)
return number + 1
end
ループ
1から5までのループは以下のような「For」文です。
for count = 1, 5 do
print(count)
end
「While」も利用可能。
while true do
print("Looping...")
wait(0.5)
end
連想配列
LUAではテーブルと呼ばれる形式を利用します。
local dictionary = {
val1 = "A",
val2 = "B"
}
キーとして文字列が使われるとpairs関数でループできます。
t = {}
t["str1"] = "str1"
t["str2"] = "str2"
for i, ver in pairs(t) doprint(ver)
end
数字の場合はiparisを使います。
t = {}
t[0] = "str1"
t[1] = "str2"
for i, ver in iparis(t) do
print(ver)
end
スクリプト例
タッチしたら実行
タッチしたらヘルスが0になるスクリプトは以下のようになります。
local trapPart = script.Parent
local function onPartTouch(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
trapPart.Touched:Connect(onPartTouch)
ボタンを押したら
ボックスをボタン代わりにしてタッチして反応するスクリプトは以下のようになります。
関数を書いたら、ボタンが押されたときにその関数を実行するように接続します。
local button = script.Parent
local function onButtonActivated()
print("Buttonがおされた!")
end
button.Activated:Connect(onButtonActivated)
サンプル集
以下へ移動しました。
時間や重力など、ゲーム環境の操作
【Robloxゲームの作り方】スクリプトのサンプル~ワークスペースなど - 困ったー
走る速度やジャンプなどのアバターの操作
【Robloxゲームの作り方】スクリプトのサンプル~アバターを操る - 困ったー
オブジェクトの操作
【Robloxゲームの作り方】スクリプトのサンプル~オブジェクトを操る - 困ったー
Robloxでゲームを作る手順のまとめはこちら。