功能
函数是为您的 Yarn 脚本提供值的代码块,您可以在 if 声明,或存储在 变量.
在 Yarn Spinner 脚本中,函数执行两种主要任务:
- 函数可让您获取随时间变化或取决于其他值的值。例如,
random每次调用函数时都会返回不同的随机数。 - 函数可让您将游戏中的数据返回到脚本中。
您在表达式内调用函数。例如:
// Inside an if statement:
<<if dice(6) == 6>>
You rolled a six!
<<endif>>
// Inside a line:
Gambler: My lucky number is {random_range(1,10)}!内置功能
Yarn Spinner 附带了几个内置功能供您使用。
visited(string node_name)
visited 返回一个布尔值 true 如果标题为 node_name 之前至少已进入和退出过一次,否则返回 false。会回来的 false 如果 node_name 与项目中的节点不匹配。
visited_count(string node_name)
visted_count 返回标题为 的节点出现次数的数值 node_name 已进入并退出,否则返回 0。会回来的 0 如果 node_name 与项目中的节点不匹配。
format_invariant(number n)
format_invariant 返回一个字符串表示形式 n,使用不变区域性进行格式化。这对于在命令中嵌入数字非常有用,其中命令期望使用不变区域性来格式化数字。例如, <<give_gold {$gold}>>,最终可能会变成 give_gold 4,51 德语,但是 give_gold 4.51 英语,现在可以 <<give_gold {format_invariant($gold)}>>,这将永远是 give_gold 4.51.
random()
random 每次调用时都会返回一个 0 到 1 之间的随机数。
random_range(number a, number b)
random_range 返回之间的随机数 a 和 b,包含在内。
dice(number sides)
dice 返回 1 到 1 之间的随机整数 sides,包含在内。
例如, dice(6) 返回 1 到 6 之间的数字,就像掷六面骰子一样。
min(number a, number b)
min 比较 a 和 b,并返回两者中较小的一个。
max(number a, number b)
max 比较 a 和 b,并返回两者中较大的一个。
round(number n)
round 回合 n 到最接近的整数。
round_places(number n, number places)
round_places 回合 n 到最接近的数字 places 小数点。
floor(number n)
floor 回合 n 向下到最接近的整数,朝向负无穷大。
ceil(number n)
ceil 回合 n 直到最接近的整数,朝向正无穷大。
inc(number n)
inc 回合 n 直到最接近的整数。如果 n 已经是一个整数, inc 回报 n+1.
dec(number n)
dec 回合 n 向下到最接近的整数。如果 n 已经是一个整数, dec 回报 n-1.
decimal(number n)
decimal 返回小数部分 n。这始终是 0 到 1 之间的数字。例如, decimal(4.51) 会回来 0.51.
int(number n)
int 回合 n 向下到最接近的整数,趋向于零。
[!信息] 这不同于
floor, 因为floor四舍五入到负无穷大。
自定义功能
[!危险] 我们建议您在学习了 Yarn Spinner 脚本的基础知识后才进入 Yarn Spinner for Unity 文档。
您可以创建自己的命令,以便您的脚本可以向您的游戏发送指示。有关如何在 Unity 游戏中创建它们的更多信息,请参阅 创建命令和函数,位于文档的 Yarn Spinner for Unity 部分,以及其他引擎的等效项。
[!警告] 函数并不是让您向游戏发送指令的一种方式。为此,您应该使用 命令.
应该尽可能地自定义函数 纯函数,除了根据参数返回一个值之外没有副作用。