PlayMaker 系列教程 |(一)基础知识

📂 Unity 开发资源汇总 | 插件 | 模型 | 源码

💓 欢迎访问 Unity 打怪升级大本营

对于没有编程背景的设计师或艺术家来说,编写代码可能是一个难以逾越的障碍。PlayMaker的出现,为这些创意工作者提供了一个无需编码即可实现复杂游戏逻辑的解决方案。

PlayMaker是一个基于Unity的可视化脚本工具,它允许开发者通过拖放的方式创建游戏逻辑。使用PlayMaker,开发者可以创建AI行为、动画控制、UI交互等,而无需编写任何代码。

在这里插入图片描述

PlayMaker 最新版 (0 积分) 免费下载

在这里插入图片描述

在这里插入图片描述

1. 基本概念

从本质上讲,PlayMaker 是一种通过有限状态机 (FSM) 操纵 Unity 的工具,FSM 是一种将复杂行为分解为各个状态的模型。

由于这似乎很抽象且难以理解,让我们从一个具体的例子开始。

1.1 什么是 FSM?

例如,家用电器上的电源按钮:即使执行相同的“按下按钮”操作,家用电器的响应(无论是打开还是关闭)也会根据情况而有所不同。
在这里插入图片描述
如果按下按钮的“事件”发生在 ON 的“状态”中,它将“转换”到 OFF 的“状态”;相反,如果按下按钮的“事件”发生在 OFF 的“状态”中,它将“转换”到 ON 的“状态”。

考虑到这个例子,我们可以将 FSM 视为一个模型,它基于几个(有限)状态、事件和转换的组合来描述复杂行为。

让我们看看实际 PlayMaker FSM 的元素
在这里插入图片描述

  1. START(事件开始)
    激活 FSM 时(播放 Unity 场景时),将发送一个开始事件,该事件从 Playmaker 编辑器的最开头就开始存在,并且是激活 FSM 时发生的事件。
  2. 状态
    一次只能有一个状态处于活动状态;活动状态执行操作并接收事件。
  3. Transition 事件
    事件触发到另一个状态的转换,该转换可以从 Unity 发送(碰撞、触发器、鼠标输入等)或通过操作(距离检查、超时、游戏逻辑)发送。
  4. 转换
    过渡就像 PlayMaker 编辑器中的箭头:可以通过从一个 Transition Event 拖放到下一个 State 来轻松创建它们。
  5. 全局转换
    无论当前处于活动状态如何,都可以随时触发 Global Transitions。

这是实际的 PlayMaker 编辑器屏幕。
这是实际的 PlayMaker 编辑器屏幕。

1.2 三个基本概念

PlayMaker 的基本概念是“State”、“Event”和“Transition”的组合。

1.2.1 State(状态)

在下图中,Move、Idle 和 FallDown 是 State,在任何给定时间只有一个 State 处于活动状态。
在这里插入图片描述
PlayMaker 提供了数十个 Actions,可以组合这些 Action 来创建各种逻辑。

每个 State 都有一个 Action,当 State 变为活动状态时执行该 Action。

操作从上到下按顺序执行,因此请注意顺序。

“Move” 状态具有 “Move Object” 操作和 “Send Event” 操作。
在这里插入图片描述

1.2.2 Event(事件)

正如我们已经看到的,下图中的 “stop” 是一个 Event,它会触发 state transition。
在这里插入图片描述
事件包括从 Unity 接收的事件(例如碰撞、触发器和鼠标输入)以及由活动状态的操作(例如距离检查、超时和游戏逻辑)触发的事件。

前者很容易理解:事件由鼠标输入或碰撞器点击触发,而后者可以是 State 操作的一个示例,该操作持续比较与具有一定距离的摄像机的距离,并在与摄像机的距离小于特定数字时触发事件。

首先由 Start Event 激活的 State 称为 Start State。
在这里插入图片描述

1.2.3 Transition(过渡)

过渡是 PlayMaker 编辑器中的箭头,可以通过从一个 Transition Event 拖放到下一个 Transition Event 来轻松创建。

过渡没有复杂的设置。

但是,基本上,转换是从特定 State 到特定 State 的,但可以通过 Event 指示从任何 State 到特定 State 的转换,而无需指定转换的来源 State,这称为 Global Transition。

在下面的示例中,事件 “TRIGGER ENTER” 会导致过渡到 “FallDown”,无论它是 “Move” 还是 “Idle”。
在这里插入图片描述

1.3 变量

除了以上三个基本概念外,还有应该添加的变量的概念。

变量就像一个有名称的盒子,你可以在其中放置一个值,通过将变量指定为操作的参数,你可以创建一个动态机制。
在这里插入图片描述
Time 不是输入 “1”,而是设置一个名为 “fadeInTime” 的变量。


在这里插入图片描述

2. PlayMaker 编辑器的位置

在左上角的菜单中,单击 PlayMaker > PlayMaker 编辑器。
在这里插入图片描述
将显示 PlayMaker 编辑器和欢迎使用 PlayMaker 窗口。

取消选中“欢迎使用 PlayMaker”中的“启动时显示”复选框,然后单击 O 以关闭“欢迎使用 PlayMaker”。
在这里插入图片描述
将 PlayMaker 编辑器选项卡拖放到右下角。

这是建议的位置,因此请将 PlayMaker 编辑器选项卡拖放到您方便的位置。
在这里插入图片描述


在这里插入图片描述

3. PlayMaker 基本操作

3.1 添加 FSM

让我们将 PlayMakerFSM 添加到 Hierarchy 窗口中的对象(以下称为 Hierarchy)。

右键单击层次结构以打开菜单。

单击 3D Object > Cube 放置立方体。
在这里插入图片描述
选择层次结构中的 Cube 后,右键单击 PlayMaker 编辑器。

然后单击 Add FSM(添加 FSM)。
在这里插入图片描述
PlayMakerFSM 现已添加到 Cube 中。

或者,您也可以通过在 PlayMaker 编辑器上按 Ctrl + 左键单击 (Windows) / command + 单击 (macOS) 来添加 PlayMakerFSM。

添加 PlayMakerFSM 后,PlayMaker 图标将添加到层次结构中立方体的右侧,并且 PlayMakerFSM 组件将添加到检查器中。
在这里插入图片描述
我们还将向您展示如何从检查器添加 PlayMakerFSM。

在层次结构中选择 Cube,然后在 Cube 检查器中单击添加组件,在搜索表单中输入“Play”,PlayMakerFSM 将出现在搜索结果中。

单击 PlayMakerFSM。
在这里插入图片描述

3.2 删除 FSM

右键单击 PlayMaker 编辑器,然后单击删除 FSM 组件以从对象中删除 PlayMakerFSM。
在这里插入图片描述

3.3 重命名 FSM

您可以通过选择 FSM 选项卡,从 Rename 表单中更改 FSM 的名称

更改 FSM 名称可以更轻松地管理多个 FSM。
在这里插入图片描述

3.4 添加状态

您可以通过右键单击 PlayMaker 编辑器并选择添加状态来添加新状态,也可以通过在 PlayMaker 编辑器上按 Ctrl + 左键单击 (Windows) / 命令 + 单击 (macOS) 来添加 PlayMakerFSM。
在这里插入图片描述

3.5 删除 State

您可以通过右键单击要删除的 State 并选择 Delete States 来删除状态。

您还可以通过选择状态并单击 Delete 来删除该状态。
在这里插入图片描述

3.6 重命名 State

选择一个 State 并更改 State 选项卡上的名称输入表单。
在这里插入图片描述

3.7 复制/粘贴状态

您可以通过选择状态,右键单击并选择 Copy State 来复制状态。

您还可以选择一个状态,然后按 Ctrl + C (Windows) / Commnd + C (macOS)。
在这里插入图片描述
右键单击 PlayMaker 编辑器,然后选择 Paste State 以粘贴复制的 State。

您还可以选择一个状态,然后使用 Ctrl + V (Windows) / Commnd + V (macOS) 粘贴它。
在这里插入图片描述
用于复制和粘贴 State 的快捷键很有用,因此请牢记它们。

操作系统复制粘贴
WIndowsCtrl + CCtrl + V
macOSCommand + CCommand + V

如果您尝试复制并粘贴设置为 Start State 的 State(见下文),则会出现一条消息,询问您是否要将粘贴的 State 设为 Start State。

如果您想使其成为 Start State(开始状态),请选择 “Yes”(是),如果您不想使其成为 Start State(开始状态),请选择“No”(否)。
在这里插入图片描述

3.8 添加操作

选择要添加 Action 的 State,然后单击 PlayMaker 编辑器右下角的 Action 浏览器,或双击 State 空白区域。
在这里插入图片描述
此时将显示 Action Browser。
在这里插入图片描述

例如,如果您想要向立方体添加一个“旋转”动作,在搜索表单中输入“旋转”,然后双击旋转或拖放旋转到一个状态,或者点击右下角的添加动作到状态。
在这里插入图片描述
在 Action 浏览器中搜索 Rotate
在这里插入图片描述
双击旋转或拖放旋转到状态以添加旋转到状态

在 PlayMakerFSM 中的 Action 仍处于选中状态的情况下,从 Action Browser 添加下一个 Action,它将添加到所选 Action 的顶部。
在这里插入图片描述
如果要从顶部开始按顺序添加操作(例如,如果要在 Rotate 旁边执行 Set Scale)
在这里插入图片描述

单击 Rotate (旋转) 下方的空间以取消选择 Rotate (旋转)。
在这里插入图片描述
未选择 Rotate (旋转) 后,添加 Action (操作) 接下来要执行。
在这里插入图片描述
现在,这些操作按从顶部开始的 Rotate (旋转) → Set Scale (设置缩放) 的顺序列出。

操作从上到下按顺序执行,因此请注意顺序。
在这里插入图片描述

3.9 更改操作顺序

要更改操作的顺序,请右键单击操作并将操作移动到顶部以将其移动到顶部,或将操作移动到底部以将其移动到底部。
在这里插入图片描述
您还可以通过拖动操作或按 Ctrl + ↑ 或 ↓ 向上或向下移动操作来将操作移动到任何位置。
在这里插入图片描述

3.10 删除操作

如果不再需要某个操作,请右键单击它,然后选择 Remove Action 将其删除。

在这里插入图片描述
或者,选择 操作 并按 Delete(Windows) / Commnad + Delete(macOS)。

3.11 停用操作

取消选中 Action name (操作名称) 左侧的复选框,以防止它在场景播放期间正常工作。
在这里插入图片描述

3.12 复制/粘贴操作

右键单击一个动作,然后选择 Copy Selected Actions 以复制该动作。

或者,也可以使用 Ctrl + C (Windows) / Commnd + C (macOS) 进行复制。
在这里插入图片描述

右键单击并选择 Paste Actions 以粘贴操作。

您也可以使用 Ctrl + V (Windows) / Commnd + V (macOS) 进行粘贴。
在这里插入图片描述

在这里插入图片描述

4. 添加Transition(过渡)

右键单击 State 并选择 Add Transition 以选择要添加的 Transition。

让我们选择 Add Transition > FINISHED。
在这里插入图片描述
FINISHED 是当 State 中的所有 Action 都完成时触发的事件。

4.1 删除过渡

如果您有不需要的 Transition,可以通过右键单击 Transition Event 并选择 Delete Transition 来删除它。

在这里插入图片描述

4.2 如何连接过渡

您可以通过从 Transition Event 拖动到另一个 State 来连接 Transition。
在这里插入图片描述

4.3 删除过渡目标

右键单击 Transition Event,然后选择 Clear Transition Target 将其删除。
在这里插入图片描述

4.4 错误指示

PlayMaker 显示一个红色的

单击 PlayMaker 编辑器左下角的错误数量将弹出错误检查屏幕。
在这里插入图片描述
Error Check (错误检查) 屏幕显示错误的详细信息。

单击错误详细信息会将 PlayMaker 编辑器屏幕切换到错误位置。
在这里插入图片描述

4.5 在场景播放期间检查 FSM

在场景播放期间查看 PlayMaker 编辑器。

正在执行的 State 和 Action 将显示为绿色。

因此,您可以检查正在执行的流程。
在这里插入图片描述

4.6 FSM 固定显示器

当您在层次结构中选择一个对象时,PlayMaker 编辑器还会根据对象切换内容。
在这里插入图片描述
要停止切换,请单击 PlayMakerFSM 顶部的 Lock。
在这里插入图片描述
在场景播放期间,当您在观看 PlayMakerFSM 移动时选择要移动或以其他方式操作层次结构中的另一个对象时,这非常有用。

4.7 更改 Start 状态

Start State (开始状态) 确定要执行的第一个状态。

在下图中,过渡从 START 延伸到 State1。在这种情况下,State1 是播放场景时要执行的第一个状态。

要稍后更改 Start State(开始状态),请右键单击要首先执行的 State(状态),然后选择 Set as Start state(设置为开始状态)。
在这里插入图片描述
您已将 State2 切换为 Start State。
在这里插入图片描述

在这里插入图片描述

5. 以 PlayMaker Lab 为参考创建 PlayMakerFSM

5.1 介绍

我们准备了一个 PlayMakerFSM 示例,让我们看看它实际上是如何结合 State、Action 和 Transition 的组合来工作的。
在这里插入图片描述
下载示例:PlayMaker Demo

将 PlayMaker_Lab.unitypackage 导入到 Unity 项目中。
在这里插入图片描述

5.2 让我们连接 Transition

双击项目 Assets > STYLY PlayMaker Lab > Scenes 中的 STYLY PlayMaker Lab 01.Scene 打开场景。
在这里插入图片描述
现在,具有黄色 Sphere 和红色 Cube 的场景将显示在 Scene 视图中。
在这里插入图片描述
从层次结构中选择 Cube_Sample。
在这里插入图片描述
在红色 Cube 的 PlayMakerFSM 中,有 9 个 State,可以通过箭头连接来创建 Transition。
在这里插入图片描述
每个 State 都有一个 Action。
在这里插入图片描述
A 组状态具有 Action 集作为条件。

状态名称Action描述
TouchTrigger Event在触摸某些内容时触发事件。
Time waitWait等待单位:秒
Press enter keyGet Key Down按 Enter(光标位于 Game 视图中)
DistanceGet Distance
Float Compare
和 Cube 之间的距离小于/大于/等于

B 中的 State 组设置为生成的 Action。

状态名称Action描述
Change ColorSet Material更改材质(在本例中,它将是蓝色的)
RotateRotate旋转
Fall downSet Property
(isKinematic/isTrigger)
添加碰撞检测和重力
Particle effectsActivate Game Object激活对象(这次我们从非活动状态激活粒子效果)。
Create CapsuleCreate Object
Set Parent
在场景中创建一个 Capsule 对象,并使其成为 Sphere 的子对象。

让我们尝试通过连接 Transition from A to B 来查看它如何变化。
在这里插入图片描述
例如,将 First state → Touch → Particle 效果连接起来。
在这里插入图片描述
让我们回放一下。

  1. 球体接触立方体
  2. 生成粒子效果。
    在这里插入图片描述

尝试通过自行更改 Actions 的组合来预测它的行为方式,并将 Transitions 连接在一起。

PlayMakerFSM 是一个非常强大的工具,可以扩大表达范围。

5.3 从头开始创建 PlayMakerFSM(什么是触发器)

双击 Assets > STYLY PlayMaker Lab > Scenes > STYLY PlayMaker Lab 02.Scene 打开场景。
在这里插入图片描述
具有黄色 Sphere 和两个红色 Cube 的场景将显示在 Scene 视图中。
在这里插入图片描述
播放场景。

黄色球体穿过两个立方体,但当它穿过“在写着 Lab 的蓝色立方体之上”的红色立方体时,会产生一个粒子;但是,当它穿过“位于显示 Copy 的蓝色 Cube 顶部”的红色 Cube 时,不会生成 Particles。

让我们创建一个 PlayMakerFSM,即使穿过“在显示 Copy 的蓝色 Cube 之上”的红色立方体,它也会生成一个粒子。
在这里插入图片描述
在层次结构中选择 Cube_Practice。
在这里插入图片描述
通过右键单击 PlayMaker 编辑器并选择添加 FSM 来添加 PlayMakerFSM。
在这里插入图片描述
复制层次结构中的子对象 Particle System of Cube_Sample。

将复制的 Particle System(粒子系统)拖放到 Cube_Practice 以创建 Cube_Practice(父)-Particle System (child)(粒子系统(子))关系。

然后移动 Particle System (粒子系统) 的位置,使其与 Cube_Practice 重叠。
在这里插入图片描述
将 State1 的名称更改为 Touch。

添加一个 Action,当有物体接触 Touch 时将触发该操作。
在这里插入图片描述
在 Action Browser 中找到 Trigger Event 并添加它。

将参数 Trigger 设置为 On Trigger Enter。
在这里插入图片描述
On Trigger Enter 可以在特定对象接触到“触发器(对象)”(以下简称“触发器对象”)的碰撞器区域时触发事件。

On Trigger Enter 功能的条件

  1. Collider 同时提供给特定对象和触发器对象。
  2. 选中将要作为触发器的对象上的 Collider > Is Trigger
    • 选中 Is Trigger 后,不会发生碰撞。
  3. 必须在特定对象或触发对象上设置 Rigidbody 组件
    • 取消选中 Use Gravity 以禁用重力
    • 选中 Is Kinematic 以禁用物理效果

以下是 “Check Is Trigger for Collider” 的说明。

首先,我们来谈谈碰撞器。

碰撞体是在命中或触发对象时附加到对象的形状,在场景中由绿线表示。

当碰撞体相互接触时,将触发命中检测和触发器。
在这里插入图片描述
例如,Cube Inspector 有一个 Box Collider。
在这里插入图片描述
碰撞器具有 Is Trigger。

Is Trigger (是触发器) 是 Collider (碰撞器) 组件的设置之一,对于区分命中和触发器非常重要。

选中 Is Trigger 的对象无法进行物理接触。

如果未为被击中的一侧的碰撞体选中 Is Trigger,它将与碰撞体接触。
在这里插入图片描述
如果选中了碰撞 Cllider 的 Is Trigger,则它不会接触碰撞器。
在这里插入图片描述
Is Trigger of Collider 组件摘要

Is Trigger行为
Unchecked碰撞接触
Checked不碰撞接触

这一次,为了实现“我想在黄色球体穿过立方体时生成粒子”,请选中立方体(被触摸的那个)上的 Is Trigger (Collider) 复选框。

下面解释了“Rigidbody 组件必须设置为特定对象或触发器对象。

黄色 Sphere 没有 Rigidbody 组件,因此在这种情况下,Cube 必须具有 Rigidbody 组件。

然后,不要选中 Use Gravity 复选框,而是选中 Is Kinematic 复选框。

如果选中 Use Gravity,则将激活 Gravity 效果。

选中 Is Kinematic 将禁用物理效果。
在这里插入图片描述
最后,再次总结一下,

  • On Trigger Enter 可以在特定对象接触触发器对象时触发事件(Is Trigger 选中)。
    • 选中触发器对象的 Collider 中的 Is Trigger。
      • 选中 Is Trigger 后,不会发生碰撞。
  • 必须在特定对象或触发器对象上设置 Rigidbody 组件。
    • 取消选中 Use Gravity 以禁用重力
    • 选中 Is Kinematic 以禁用物理效果

返回到 PlayMaker 编辑器。
将 Trigger Event (触发事件) 设置为以下值

参数名称参数说明参数值
Game Object将应用 Action 的对象。Use Owner (默认设置)
Trigger触发器事件的类型On Trigger Enter (默认设置)
Collider TagTag:如果使用 STYLY, 应设置为“Untagged”。 (默认设置) 或者 Untagged
Send Event操作完成后要发送的事件。Send to Next(我们将在下一节中解释如何设置)
Store Collider碰撞器变量None (默认设置)

在这里插入图片描述
设置 Send Event。

点击 ▼ 图标,然后选择 自定义事件>发送到下一个。
在这里插入图片描述
消息“此状态或任何全局转换未使用事件![单击以将过渡添加到状态]“将显示在 Send Event 下。

它的意思是 “请添加到 State 的过渡。
在这里插入图片描述
双击消息以添加过渡。
在这里插入图片描述
在 Cube_Practice Inspector 中,选中 Collider > Is Trigger(触发碰撞器)。
在这里插入图片描述
单击 Inspector 底部的 Add Componet 以添加刚体。
在这里插入图片描述
取消选中添加的 Rigidbosy 的 Use Gravity,然后选中 Is Kinematic。
在这里插入图片描述
返回 PlayMaker 编辑器,添加一个 State,然后将 Transition from Touch send 连接到添加的 State 旁边。
在这里插入图片描述
现在,您已经完成了此操作,请播放该场景并检查黄色 Sphere 在接触红色 Cube 时是否从 Touch 过渡到 State1。
在这里插入图片描述
接下来,让我们添加一个 Action 来生成 Particle。

将 State1 重命名为 Active Particle。
在这里插入图片描述
添加 Active Game Object 并等待 Active Particle。
在这里插入图片描述
按如下方式设置 Active Game Object 的 Action。

参数名称参数说明参数值
Game Object将应用 Action 的对象。将子对象 Particle System (1) 拖放到此处(见下文)。
Active选中可将其激活;取消选中以使其处于非活动状态。Checked
Recursive选中后,也会反映在 Game Object 中设置的对象的子项中。Checked
Reset On Exit反转 Action 结束时的操作。Checked (使其在 Action 结束时再次处于非活动状态。)
Every Frame每帧重复此操作。Uncheck

单击 Active Game Object 参数的 ▼ 图标,然后选择 Specify Game Object。

游戏对象参数有两种类型

  1. 使用 OAwner
    • 将 OAwner 用于 PlayMakerFSM 的对象。
  2. 指定游戏对象
    • 您可以指定任何对象,甚至是预制件对象。

要激活 Particle System(1)(Cube_Practice 的子对象),请从层次结构中拖放 Particle System (1),并将其设置为 Specify Game Object (Specify Game Object) 下的形式。
在这里插入图片描述
当您拥有以下设置时,您就完成了!
在这里插入图片描述
现在我们将解释如何激活和停用对象。

检查器中对象的名称旁边有一个复选标记。

如果选中此选项,则对象处于活动状态。
在这里插入图片描述
如果将其停用(取消选中),则对象在 Scene 视图中将不可见,并且其功能不会影响场景。

在层次中,字母将淡化,只有 Gizmo 在 Scene 视图中可见。
在这里插入图片描述
例如,通过使用 Active/Inactive 设置,您可以在事件发生时使用 Particle。

接下来,我们设置 Wait 参数。

参数名称参数说明参数值
Time等待时间2
Finish Event操作完成后要发送的事件的目的地。Send to Next(如何设置,将在下一节中说明)
Real Time如果您不想受 TimeScale 影响,请选中此框。如果您不想受到 Real TimeScale 的影响,请取消选中此框。

关于 TimeScale,请参阅以下文档:Time.timeScale

点击 Finish Event 参数中的 ▼ 图标,然后选择 send to next。
在这里插入图片描述
您还将收到一条消息,指出没有 Transition。

这一次,右键单击 Active Particle,然后选择 Add Transition > send to next 来设置过渡。
在这里插入图片描述
现在让我们按一次 Play 按钮来检查操作。

Cube_Practice 仅在黄色球体与粒子碰撞时生成粒子一次,但每次黄色球体与粒子碰撞时Cube_Sample生成粒子。
在这里插入图片描述
请考虑最后一个设置点并自己制作。

提示是连接 Transition of Active Particle 的位置。

如果您不知道,请查看 Cube_Sample 的 PlayMakerFSM。

5.4 "6个样例"的描述

双击项目 Assets > STYLY PlayMaker Lab > Scenes > STYLY PlayMaker Lab 03.Scene 打开场景。
在这里插入图片描述
有 6 个 PlayMakerFSM 示例可用。
在这里插入图片描述

以下是每个 Action 的说明。

样例名称Action
01_SampleCube 旋转
02_SampleSphere 每秒停用一次
03_Sample随机更改颜色
04_Sample创建对象
05_Sample当 Cube 与 Sphere 碰撞时,文本将从 SKY 变为 SEA 再到 SUN。
06_Sample根据行驶距离,使用四种算术运算来更改比例。

5.4.1 旋转

这是在 01_Sample 中旋转 Cube 的 Action。
在这里插入图片描述
在层次结构中选择 01_Sample 的 (子对象) 01_Cube (Playmaker)。
在这里插入图片描述
使用 Rotate (旋转) 旋转它。
在这里插入图片描述
旋转参数说明如下:

参数名称参数说明
Game Object将应用操作的对象。
Vector指定绕 X、Y 和 Z 轴旋转的旋转矢量。注意: 可以覆盖下面的各个轴
X Angle绕 X 轴旋转的度数。
Y Angle绕 Y 轴的旋转度数
Z Angle绕 Z 轴的旋转度数
SpaceWorld (世界) 根据世界坐标旋转。
Self 根据 Game Object 中指定的对象进行旋转。
Per Second旋转以度/秒为单位指定。
这是每秒的旋转量。
(如果您希望对象连续旋转,请选中此框。
Every Frame重复每一帧。
(如果您希望继续旋转,请选中此框。

关于 Space 参数
将 Transform 的 Rotation X 设置为 45,将 “Rotate” 操作的 Y Angle 设置为 180。

“Space” 设置为 ”World“,它将根据世界坐标旋转。
在这里插入图片描述
将 Transform 的 Rotation X 设置为 45,将 “Rotate” 操作的 Y 角度设置为 180。

Space 设置为 Self,则旋转基于 Game Object 中指定的对象的坐标。
在这里插入图片描述

5.4.2 Active/Inactive

以下是逐个停用 02_Sample 的 5 个球体,然后激活所有 5 个球体的操作。
在这里插入图片描述
在层次结构中向下选择 (子对象) 02_count (PlayMaker) 的 02_Sample。
在这里插入图片描述
这是使用 Activate Game Object 和 Wait 创建的,我们在 5.2 中学到了这一点。
在这里插入图片描述

5.4.3 随机事件

这是一个在 03_Sample 中随机更改 Sphere 材质的 Action。
在这里插入图片描述
在层次结构中选择 (子对象) 03_Capsule (PlayMaker) of 03_Sample。
在这里插入图片描述
在 State1 中使用 Random Event 过渡到 1/2/3 之一。

在这里插入图片描述
Random Event 参数如下:

参数名称参数说明
Delay指定发送事件之前的时间(以秒为单位)。
No Repat如果您不想连续两次重复同一事件,请选中此框。

使用下一个 State 中的 Set Material 来更改颜色。
在这里插入图片描述
Set Material 参数如下:

参数名称参数说明
Game Object将应用 Action 的对象。
Material Index对象材质的索引
基本上,只需要 0。
Material设置要用于对象的材质。
从项目中拖放材质以设置材质。

5.4.4 创建对象

04_Sample:在场景中创建 Cube 的操作。
在这里插入图片描述
在层次结构中选择 04_Sample 的 (子对象) 04_Sphere (PlayMaker)。

在这里插入图片描述
重复 Create Object (创建对象) 在场景中创建对象,然后等待 1 秒钟。
在这里插入图片描述
Create Object 参数说明如下:

参数名称参数说明
Game Object将应用操作的对象。
Spawn Point将创建对象的位置
可以是场景中的对象
Position允许您设置位置
Rotation允许您设置旋转
Store Object将创建的对象存储在变量中

播放场景时,由 Create Object 创建的white_Cube将继续在层次结构中创建,名称为 white_Cube(Clone)。
在这里插入图片描述
使用 Create Object 继续创建对象时,需要注意一些。

不要无限期地创建对象。

因此,请务必包含操作,例如在对象数量达到特定级别时 “stop” 或在几秒钟后 “delete” 。

在此 white_Cube 预制件中,我们包含一个操作,用于在 5 秒后删除对象。

要删除对象,请使用 Destroy Object (销毁对象)。

在这里插入图片描述
Destroy Object 参数说明如下:

参数名称参数说明
Game Object要操作的对象
Delay触发操作之前的时间
Detach Childern在删除对象之前分离子对象

5.4.5 通过碰撞更改对象

当 Cube 与 05_Sample 中的 Sphere 发生碰撞时,我们引入了一个 Action,将文本从 SKY 更改为 SEA 再到 SUN。
在这里插入图片描述
在层次结构中选择 (子对象) 05_Sphere (PlayMaker) of 05_Sample。
在这里插入图片描述
使用 5.2 中学到的 Trigger Event。从头开始创建 PlayMakerFSM(什么是触发器?),跳过事件,停用显示 SKY 文本的对象,并激活重复显示 SEA 文本的对象以创建它。
在这里插入图片描述

5.4.6 使用四则运算改变缩放大小

06_Sample 是一个使用二次运算更改 Sphere 大小的 Action。
在这里插入图片描述
在层次结构中选择 (子对象) 06_Sphere(PlayMaker)。
在这里插入图片描述
我将从上到下按顺序解释。
在这里插入图片描述
Get Distance 用于获取物体与目标的距离,并将获取到的值存储在 Store Result 中设置的变量中。
在这里插入图片描述
Get Distance 参数说明如下:

参数名称参数说明
Game ObjectAction 的 Target 对象
Target要测量其与 Game Object 的距离的目标对象。
Store Result存储 Game Object 和 Target 之间的距离。
Every Frame对每一帧重复此操作。

Store Result 是存储结果的变量;如果创建一个名为 Distance 的变量,并在其中输入 Game Object 和 Target 之间的距离值,则可以在其他操作中使用 Distance 的值。

使用通过 Get Distance 获得的值 (Distance),将 Float Multiplay (multiply)、Float Add (add) 和 Float Divide (divide) 应用于 Distance,最后将 Distance 的值设置为 Sphere scale X, Y, Z with Set Scele。
在这里插入图片描述
Float Multiply 参数说明如下:

参数名称参数说明
Float Variable要相乘的变量
Multiply By乘以
Every Frame此操作每帧重复一次。

Float Add 参数说明如下:

参数名称参数说明
Float Variable要添加的变量
Variable to be added要添加的值
Every Frame此操作每帧重复一次。

Float Divide 参数说明如下:

参数名称参数说明
Float Variable待分变量
Divide By要除以的值
Every Frame对每一帧重复此操作。

Set Scale 参数说明如下:

参数名称参数说明
Game Object将应用操作的对象。
VectorScaleX,Y,Z 可以设置为 Vector3(X,Y,Z) 的形式。
但是,参数 X、Y 和 Z 优先。
Vector(2,2,2),其中 X 和 Y 为 None,Z 为 3。
X为 Transform 的 Scale X 设置的值
Y为 Transform 的 Scale Y 设置的值
Z为 Transform 的 Scale Z 设置的值
Every Frame此操作每帧重复一次。

标题6

6. PlayMaker 下载地址

PlayMaker 最新版 (0 积分) 免费下载


TheEnd


跳跃

📂 Unity 开发资源汇总 | 插件 | 模型 | 源码

💓 欢迎访问 Unity 打怪升级大本营

🍉🍉🍉 如果觉得这篇文对你有帮助的话,请点个赞👍、收藏⭐️下吧,非常感谢! 💕💕💕
关注我

博主头像
【博主简介】:10年以上软件开发经验,精通 C语言C++C#Java 等开发语言,开发过大型 Android 项目,现主要自主开发经营 休闲益智类小游戏

【粉丝福利】:博主收藏了大量游戏开发资源和素材。这些资源经过博主多年整理沉淀,现筛选一批精品资源,分享给大家学习研究。

Unity打怪军团 广招天下勇士加入 Unity学习互助小组 需要进群的同学联系我,互3互推也请联系我…
联系我

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unity打怪升级

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值