Skip to content

Playmaker

PlayMaker ↗ 是用于unity很受欢迎的可视化编程扩展,旨在用于便于无代码基础的人使用。

cover

请注意,与默认情况下所有Naninovel的C#API均可用的Bolt相比,PlayMaker要求为每个操作创建一个特殊的C#类。意味着只有少部分引擎API在playmaker下可用。如果Naninovel的API发生更改,可用的自定义操作也可能会中断。

安装

安装playmaker参考官方文档 ↗

下载并导入PlayMaker引擎扩展包 ↗

自定义Naninovel操作应出现在PlayMaker操作浏览器的“ Naninovel”类别下。

cover

使用

以下视频演示了如何使用PlayMaker FSM(有限状态机)初始化Naninovel引擎,预加载并运行脚本。

cover

事件

一些重要的Naninovel事件可以自动发送到PlayMaker FSM。为此,请创建一个具有适当名称的全局用户事件 ↗ ,并在FSM中使用它。以下是可用的事件名称:

  • Naninovel/Engine/OnInitialized
  • Naninovel/ScriptPlayer/OnPlay
  • Naninovel/ScriptPlayer/OnStop
  • Naninovel/StateManager/OnGameSaveStarted
  • Naninovel/StateManager/OnGameSaveFinished
  • Naninovel/StateManager/OnGameLoadStarted
  • Naninovel/StateManager/OnGameLoadFinished
  • Naninovel/TextPrinterManager/OnPrintTextStarted
  • Naninovel/TextPrinterManager/OnPrintTextFinished
  • Naninovel/LocalizationManager/OnLocaleChanged

也可以使用以下 @playmaker 命令从naninovel脚本中广播自定义PlayMaker事件:

nani
@playmaker EventName

— 将在场景中所有活动的FSM中调用一个名为“ EventName”的全局用户事件。

该命令还允许使用 fsmobject 参数将事件发送到特定的FSM 。第一个参数允许指定FSM名称,该名称应接收事件,例如:

nani
@playmaker EventName fsm:Fsm1,Fsm2

— 将为名称为“ Fsm1”和“ Fsm2”的FSM调用名为“ EventName”的事件。

object 指定参数时,事件将仅发送到应用于游戏对象的FSM,FSM具有相应的名称,例如:

nani
@playmaker EventName object:Obj1,Obj2

— 将为所有绑定到名称分别为“ Obj1”和“ Obj2”的游戏对象的FSM调用一个名为“ EventName”的事件。

您还可以结合使用 fsmobject 参数来进一步过滤应接收事件的FSM。

全局变量

可以使用扩展包中提供的以下自定义表达式函数 来访问Naninovel脚本中的全局PlayMaker变量:

  • GetPlayMakerGlobalVariable("variableName") —检索名称为“ variableName”简单类型的变量(int,float,string等)
  • GetPlayMakerGlobalArray("variableName", arrayIndex) —检索存储在名称为“ variableName”的数组变量的“arrayIndex”索引处的值

假设有一个"Score"整数和 "FinishedRoutes" 布尔数组全局PlayMaker变量,则可以在Naninovel脚本中使用它们,如下所示:

nani
Felix: My score is {GetPlayMakerGlobalVariable("Score")}.

@if GetPlayMakerGlobalArray("FinishedRoutes",2)
    Third route (second array index) is completed.
@else
    Not yet.
@endif