在编码中,变量是您体验中不同信息类型的占位符,例如玩家名称、团队得分或故事游戏中的单词。在本章中,让我们探索如何打开体验核心游戏玩法的主脚本,并添加代码以询问玩家问题并使用他们的回答来编写您的故事。
打开脚本
Roblox 创建者在 脚本 内编写代码,以告诉 Studio 如何以及何时向体验添加自定义行为,例如触发不同类型的事件、保存玩家信息或生成敌人。Roblox 脚本使用 Luau 编程语言,您可以在稍后的 编码基础 系列中详细了解。
故事游戏模板使用一个名为 StoryManager 的脚本来控制体验的核心游戏玩法。该脚本已经包含了一些显示完整故事所需的代码,但您会添加更多代码以显示您的互动故事。
要打开 StoryManager 脚本:
在 资源管理器 窗口中,单击 StarterGui 旁边的箭头以查看其包含的所有内容。GameGui 将显示。
单击 GameGui 旁边的箭头以查看其包含的所有内容。StoryManager 脚本将显示在顶部,并与一些其他在本课中不重要的内容一起显示。

双击 StoryManager 脚本。脚本的代码将显示。
-- GLOBAL VARIABLESlocal storyMaker = require(script:WaitForChild("StoryMaker"))-- 控制游戏的代码local playing = truewhile playing dostoryMaker:Reset()-- 在破折号之间的代码故事-- =============================================-- =============================================-- 在下面的括号中添加故事变量storyMaker:Write()-- 再玩一次?playing = storyMaker:PlayAgain()end
请注意,代码的大部分使用了 -- 符号,称为 注释。编码人员使用注释来留下笔记,它们不会改变脚本的运行方式。在本课中,您将创建代码放在破折号行注释之间,以便您可以专注于在一个地方创建互动故事。
询问玩家问题
作为最佳实践,编码人员创建描述其存储的信息类型的变量名称。例如,如果您正在开发一个将玩家分成团队的游戏:
- team 变量存储有关玩家 团队 的信息。
- teamColor 变量存储有关玩家 团队颜色 的信息。
- teamScore 变量存储有关玩家 团队得分 的信息。
变量可以存储各种信息,例如小数字、真或假答案以及字符串。字符串类型的变量是特别的,因为它们可以存储完整的句子,包括您想要问玩家的问题。
使用您在上一章中使用的占位符单词,您可以创建字符串类型的变量,使用相同的占位符名称来描述您将在玩家玩故事游戏时询问的单词类型。
要为玩家问题创建变量:
在破折号行注释下方创建一个局部变量,用于第一个您希望玩家用自己的答案替换的单词。例如:
-- =============================================local name1-- =============================================使用 = 符号将变量设置为提供的 storyMaker:GetInput() 方法,该方法将在巨大的书中显示您的问题。为了使代码正常工作,您必须完全输入该方法,包括特定的大写字母。例如:
-- =============================================local name1 = storyMaker:GetInput()-- =============================================在括号中间创建一个字符串,表示您希望问玩家的问题。请记住,字符串始终使用引号包围!
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")-- =============================================
使用他们的答案
现在您有了一个玩家可以回答的问题,是时候编写您的故事代码并添加行为,将占位符单词替换为他们的答案。
要为您的故事创建变量并使用玩家的答案:
在您的问题下方,创建一个名为 story 的新变量。请记住,变量名应小写!
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story-- =============================================将您的字符串类型变量设置为故事的第一句,留一个空格在最后一个单词和引号之前。如果您的占位符单词恰好位于句子中间,您可以在本教程的后续章节中添加其余句子。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山坡上的一棵树上住着伟大的巫师 ")-- =============================================使用 .. 将故事的第一字符串与玩家的答案结合起来。将事物结合在一起称为 串联。
- 在 story 变量的同一行中添加两个句点。
- 添加一个空格,然后输入存储玩家第一个答案的变量名称。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山坡上的一棵树上住着伟大的巫师 " .. name1)-- =============================================通过调用提供的 storyMaker:Write() 方法来显示故事的这一部分,该方法在巨大的书中写下您的故事。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山坡上的一棵树上住着伟大的巫师 " .. name1)-- =============================================-- =============================================storyMaker:Write(story)
现在是一个很好的时机可以暂时停下来,在下一章节测试体验,并确保故事正常运行!