使用参数和事件

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

通常,函数只能使用它们内部已代码的信息。 有时候,你可能不知道在 advance 什么信息会是, 或要能够重用同一种信息与多个相似的信息。 例如,如果您想要使用函数来显示人们完成障碍赛的名称在巨大字母中给每个人。 你不会知道获胜者的名称直到赛车结束。 参数 是您想要在以后时间段给函数提供的信息的占位符。它们是像窗户,可以让您在后台传送信息。

使用参数和事件设置陷阱

这个脚本会创建一个破坏部分,该部分会包括其他部分。 你必须使用参数来设置它。 小心锚定该部分,以免意外地摧毁东西。

创建一个新零件

需要设置一个部分,该部分会摧毁它所触及的任何东西。

  1. 创建一个不会触摸任何东西的新部分。如果它触摸到某个东西,可能会过早失效。
  2. 在 Explorer 中,重命名零件:TrapPart。
  3. 锚定 零件。

设置脚本

使用您对变量和体验层次的知识来参考该部分的陷阱。

  1. 在陷阱部分添加一个新脚本。 重命名脚本 TrapScript

  2. 删除 Hello World 并添加描述性评论。

  3. 在评论下,创建一个新变量,找到脚本的父元素级。


    -- 摧毁父元素亲触碰的一切
    local trap = script.Parent

创建一个带参数的函数

陷阱使用函数来销毁部件触摸过的任何东西。要使用它,函数必须知道触摸过的部件。这意味着使用参数。参数被定义为 () 在函数名后。它们看起来像这样:


local function functionName(parameterName)
end

通过参数传回的实际信息称为参数 参数 。您创建一个名为 onTouch() 的新函数,该参数名为 objectTouched,该参数将跟踪任何触摸到陷阱的部分,然后销毁触摸到的部分。

  1. 创建一个本地函数。它可以名为任何东西,但本课程将使用 onTouch


    local trap = script.Parent
    local function onTouch()
    end
  2. () 中,输入参数的名称。本课程将使用 objectTouched。


    local trap = script.Parent
    local function onTouch(objectTouched)
    end
  3. local function onTouch()end 之间,创建打印声明。你会用到这个来检查下一个部分是否触摸。


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end

使用事件调用函数

我们想要函数随时运行,当有东西触摸到零件。要使这种情况发生,请将函数连接到 Touched 事件。 事件 是在体验中发生的事件。 像玩家触摸到零件或失去生命值。 当函数连接到一个事件时,函数会运行,直到发生事件。

触摸事件发生在任何部分触摸另一个部分时,可以用来创建按钮、陷阱和其他对象,玩家可以与它们交互。

  1. 在函数的 end 下,输入 trap.Touched:Connect(onTouch)


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end
    -- 将函数连接到触摸事件
    trap.Touched:Connect(onTouch)
  2. 单击测试,然后触摸零件。检查您的测试打印声明: Something touched the trap。如果您无法在输出窗口中查看字符串,请检查以关注中/正在关注内容:

    • 请确保“有东西触摸到了零件!”是在 local function onTouch() 之间的本地函数。
    • 检查 Touched 是否被大写。
  3. 现在函数正确设置,请使用它来摧毁部件。在函数中,在字符串后,类型 objectTouched:Destroy() 完成代码应该是:


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    -- 摧毁触摸对象
    objectTouched:Destroy()
    end
    trap.Touched:Connect(onTouch)
  4. 再次测试,看看部件触摸时发生什么。您的虚拟形象应该结束缺少脚或手臂。如果零件触摸到虚拟形象的头或颈部,甚至可能会完全被摧毁。

概要

参数用于将信息传递到超出范围的(在函数中无法查看)的函数。 同时,事件是特殊信号,它们会在体验中发生重要事件时触发。 不同对象有不同的事件。 函数可以连接到事件,以便在每次发生事件时都能称为“触发”。 这些小脚本通过参数连接到�