Robloxのスクリプト
EX船橋教室長の藤井です。
EX船橋Robloxの話第二弾です。
Luaはスクリプト言語なのでコンパイルは必要ありません。
たとえば、こんな感じです。
これは0.01秒ごとにものを上に飛ばせてランダムな角度回すスクリプトです。
whileループが更新処理になり、その前が初期化処理になります。
UnityのStart()がRobloxのwhile文の前、UnityのUpdate()がwhile文内と考えれば…
対応して見えませんでしょうかね?見えないか…
Robloxの動画を載せておきます。飛び跳ねて遠くへ行ってしまうブロックがスクリプトを付けたものです。
Robloc Studio動画
ご興味があれば
ぜひEX船橋体験に来てください。 それでは。
EX船橋Robloxの話第二弾です。
Lua
RobloxではLuaというプログラム言語を使います。 僕はプログラム言語なんてクラスさえあればどれも同じと思っているので、Luaはクラスがある同じような言語のひとつです。Luaはスクリプト言語なのでコンパイルは必要ありません。
たとえば、こんな感じです。
local part = script.Parentなんのこっちゃ、と思う人が殆どかもしれませんね。
while true do
rnd = math.random(6)+1
part.CFrame = part.CFrame + Vector3.new(0,1,0) -- move 1.0 to y direction
part.CFrame = part.CFrame * CFrame.Angles(0, math.rad(rnd), 0) -- rotate randomized degrees around Y axis
wait(0.01)
end
これは0.01秒ごとにものを上に飛ばせてランダムな角度回すスクリプトです。
whileループが更新処理になり、その前が初期化処理になります。
Unity
ゲームエンジンによるゲーム開発は大抵こういう処理になっていてUnityのスクリプトも同様で同じことを書くと以下のようになります。using System.Collections;なんか、若干Unityの方が難しそうに見えますが、Roblox側のpart.FrameがUnity側のthis.tranformに相当すると考えれば…
using System.Collections.Generic;
using UnityEditor.Timeline;
using UnityEngine;
public class AhoAhoMan : MonoBehaviour
{
float ctime;
float interval = 0.01f;
void Start()
{
ctime = 0f;
}
// Update is called once per frame
void Update()
{
if (ctime > interval)
{
this.transform.Translate(0, 1f, 0);
float r = Random.Range(1f, 6f);
this.transform.Rotate(0, r, 0);
ctime = 0;
}
else
{
ctime += Time.deltaTime;
}
}
}
UnityのStart()がRobloxのwhile文の前、UnityのUpdate()がwhile文内と考えれば…
対応して見えませんでしょうかね?見えないか…
Robloxの動画を載せておきます。飛び跳ねて遠くへ行ってしまうブロックがスクリプトを付けたものです。
Robloc Studio動画
ご興味があれば
ぜひEX船橋体験に来てください。 それでは。