第23回 ~テーブルの活用~

動画の冒頭に登場する段々と消えていく階段は、テーブル(配列)を活用しています。パーツ名に数字を使うと、テーブルと同じ操作ができますので覚えておくといいでしょう。

登場する英単語

英単語読み方解説
ipairs アイペアーズforでテーブルを扱う場合に使用できる

チェックポイント

  • テーブルは初期化ができる
  • 要素の値は、数字、文字、オブジェクト、関数までも使用できる
  • 「bridge.First」は、parts[1]でアクセスできる
  • 「bridge.Second」は、parts[2]。「bridge.Third」は、parts[3]
  • 要素番号は1から始まる(parts[1~])
local bridge = script.Parent
local parts = {
    bridge.First,
    bridge.Second,
    bridge.Third
}
  • テーブルを扱う場合に限り、for文で「ipairs」というものが使用できる
  • forの終了値を指定する場所に「変数名 in iparts(テーブル名)」という形で記述する
  • 1回目のループでiに1が入り、partには、partsの最初の要素が入る(つまりparts[1])
for i, part in ipairs(parts) do
  • bridgeの下にFirstというパーツがある場合、通常は「bridge.First」だが、下記のようにテーブルのキーを指定するようにも記述できる
bridge["First"].Touched:Connect(onTouch)
  • パーツ名を数字にすると、テーブルのようにアクセスできる
local bridge = script.Parent

local function start()
    for i=1,19 do
        local part = bridge[i]

    end
end
  • パーツ名を数字や全角にした場合、このように記述するとエラーになる
bridge.1.Touched:Connect(onTouch)
bridge.最初のパーツ.Touched:Connect(onTouch)
  • 上記のような場合は、このようにテーブルと同じ方法で記述する
bridge[1].Touched:Connect(onTouch)
bridge["最初のパーツ"].Touched:Connect(onTouch)

4 thoughts on “第23回 ~テーブルの活用~”
      1. それぞれの例です(上が中括弧の外、下が中にデータを入れているものです)
        local goal = {}
        goal[“Size”] = part2.Size
        goal[“Color”] = part2.Color
        goal[“CFrame”] = part2.CFrame

        local parts = {
        bridge.First,
        bridge.Second,
        bridge.Third
        }

        1. local goal = {}
          goal[“Size”] = part2.Size
          goal[“Color”] = part2.Color
          goal[“CFrame”] = part2.CFrame

          は、以下のように記述しても同じです。

          local goal = {
          Size = part2.Size,
          Color = part2.Color,
          CFrame = part2.CFrame
          }

          ———————————–
          local parts = {
          bridge.First,
          bridge.Second,
          bridge.Third
          }

          は、以下のように記述することもできます。

          local parts = {}
          partts[1] = bridge.First
          partts[2] = bridge.Second
          partts[3] = bridge.Third

          配列の中に直接値を記述することを「初期化」といいますが、動作に違いはありません。

コメントを残す