スクリプト

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

スクリプトは、エクスペリエンスにカスタムでダイナミックな振る舞いを追加するためのプレーンなテキストファイルです。スクリプトを使用して、ゲーム内のイベントをトリガーしたり、プレイヤーの入力に応答したり、プレイヤーのデータを保存したり、リーダーボードを作成したり、敵をコントロールしたり、NPC の動作をコントロールしたり、などなど、これまで以上に多

ルアウ

Roblox スクリプトは、Luau プログラミング言語を使用しています。これは Lua 5.1 から派生されています。

  • Lua 5.1 と比較して、Luau はパフォーマンスの向上、多くの便利な機能、オプションのタイピングシステム、ストリングのインタープレーション、およびテーブルの一般化を含む多くの機能を追加します。
  • すべての有効な Lua 5.1 コードは Luau コードですが、その逆は trueではありません。

Lua のほとんどの本やオンラインリソースは、Luau にはまだ一般的に適用されます。詳細な差分については、Luau のドキュメントの コンパティビリティ を参照してください。言語構文については、Luau の参照 を参照してください。

Luau の基本

ルアウは導入済みのタイプで入力されるため、変数を作成するときにタイプを指定する必要はありません。type() を使用してオブジェクトタイプをチェックできます:


logMessage = "User has more than 10 items!"
print(logMessage) -->ユーザーは10個以上のアイテムを持っています!
print(type(logMessage)) --> string

Luau にはグローバルとローカルの スコープ がありますが、local キーワードで変数と関数をローカルで宣言することがほとんどです:


local logMessage = "User has more than 10 items!"
local function printMessage()
print(logMessage)
end
printMessage() --> User has more than 10 items!

Lua は、nil を使用して、存在しないまたは存在しないと表現する、条件付きの文で false を評価します:


local messageToUser
print(messageToUser) --> なし
print(type(message)) --> なし
if messageToUser then
-- 文は評価されていますが偽です
end

お気づきかもしれませんが、-- は 1行のコメンコメントするを開始します。--[[]] はブロックコメンコメントするを作成します:


--]]
Shuts off the cosmic moon ray immediately.
Should only be called within 15 minutes of midnight Mountain Standard
Time to avoid damage to the cosmic moon ray.
]]
local function stopCosmicMoonRay()
-- 後で追加して、重要なことになるかもしれません
end

テーブル は、配列と辞典の両方の一般的な用語です。配列は一次ベースではなく、ゼロベースなので、最初のアイテムは [1] です。配列と辞典を単一のカーブルブレースセットで宣言します:


local myArray = {"chips", "sparkling water", "salsa"}
local myDictionary = {
snack = "chips",
drink = "sparkling water",
dip = "salsa"
}
print(myArray[1]) --> チップ
print(myDictionary.dip) --> salsa

ルアグローバルスの関数を使用して、テーブルをループして for ループを使用して、ipairs() 関数で配列を、pairs() でディクションナリーをオミットできますが、ルアグローバルもクリーナーな構文のために 2>for2> 関数をオミ


for index, value in ipairs(myArray) do -- 標準 Lua
print(index, value)
end
for key, value in pairs(myDictionary) do -- 標準 Lua
print(key, value)
end
for key, value in myDictionary do -- Luau 一般化されたイテレーション
print(key, value)
end

最初のスクリプト

  1. In Roblox Studio、 Explorer ウィンドウの ServerScriptService にマウスポインタを置き、 + をクリックします。

  2. Select スクリプト to add a new script.

  3. スクリプトを右クリックして HelloScript に名前を変更します。

  4. スクリプトをダブルクリックして スクリプトエディター で開きます。

  5. ファイルに次のコードを追加します:


    local helloArray = {"h", "e", "l", "l", "o"}
    local worldArray = {"w", "o", "r", "l", "d"}
    for index, value in helloArray do
    print(value)
    end
    print(table.concat(worldArray))
  6. 出力 ウィンドウが開いていることを確認します。

  7. クリックして、 プレイ をクリックして、エクスペリエンスを実行します。

  8. 次の出力を注意してください:


    h
    e
    l (x2)
    o
    world

心地よくなる

新しい開発環境に適応するための大きな部分は、あなたのニーズに応え、利用可能なツールを理解するためにそれを構成することです:

  • スクリプトエディタ セクションの Studio設定 で、フォント、色、インデント、オートコンプリート、ブラックリスト、ツールティップなどの品質のライフ機能を調整できます。 Studio セクションで暗モードを有効にすることもできます。
  • Ctrl または コマンド を押しながら、機能または変数をクリックすると、コードベースのデクラレーション (またはオンラインドキューメント) に移動します。Find and Find All を使用すると、より大きなプロジェクトをナビゲートするのに役立つことがあります。
  • 出力 ウィンドウは、スクリプトの動作を理解するのに最も基本的なツールです。 メニューを使用して、 コンテキストを表示 および 1>ソースを表示1> を有効にします。
  • スクリプト分析 ウィンドウは、エラーと警告の概要を示しますが、ユーティリティが限られている可能性があります。スクリプトエディタ は、入力中にこれらの問題をすでにハイライトします。
  • ログ機能は最小限で、 DEBUGFATAL などのログレベルの概念がありません。 print() および 1> Global.RobloxGlobals.warn()1> を使用してください。

For more information about configurinスクリプト作成 Studio for scripting, see スクリプトエディタ . For information on using your favorite text editor and version control system, see 外部ツール .

あなたの 2番目のスクリプト

  1. In Roblox Studio、 Explorer ウィンドウ にスクリプトを追加し、 OhNo 名前を変更します。

  2. ファイルに次のコードを追加します:


    print("Hello script types and locations!")
  3. クリックして、 プレイ をクリックして、エクスペリエンスを実行します。

  4. 出力は、最初のスクリプトを実行したときと同じであることに注意してください。

スクリプトが実行されない理由については、スクリプトの種類と場所 を参照してください。