当前位置:网站首页>Unity-PlayMaker
Unity-PlayMaker
2022-08-02 14:11:00 【莉萝爱萝莉】
1. 基本使用
- PlayerMaker->PlayerMaker Editor 打开面板
- 选中要应用PlayMaker的物体,在state面板中右键添加state,为其创建两个状态
- 在event中Add Event,为状态机添加两个事件。其尾部的Used表示被使用次数。
- 回到state面板,右键一个state,在 Add Transition 中为state添加一个刚才在event中添加的事件。
如果想删除这个添加的事件,可以右键事件点击Delete Transition - 点击state上添加的事件,向外拖拽箭头到另一个state,从而让事件触发时,物体状态从a转换到b
- 选中其中一个状态,点击state面板,点击Action Browser添加行为。可选GUI->GUI Button添加一个按钮行为,该按钮仅在该状态下显示。
- 修改GUI Button参数,其中 Send Event 允许在点击按钮后发送事件,注意选取自身有的事件。

- 注意:预制体想要修改可选择修改实例,或修改预制体。
2. 自定义变量
- PlayMaker 允许自定义变量。可在第四栏中配置自定义变量及其所属类型

点击设置可配置全局变量
- 在参数列表中,有等于号的地方便是可以使用变量的地方。

- 若想保存变量,可在存在
Store XXX(如Get脚本)设置 Store 为保存的到的变量中。注意必须同一类型,且使用在赋值之后
2. 特殊事件
- FINISHED 事件:会在当前状态的所有脚本运行完毕后运行该事件
3. 特殊状态池
- Trigger Event 触发器,会监听触发器直到特定类型的物体进入触发器后,触发特定事件

- Set Visibility 设置物体的材质渲染(Mesh Renderer)是否显示.
若勾选 Reset On Exit 则会在离开状态后恢复原状态。 - Create Object 创建对象。
| 名称 | 描述 |
|---|---|
| GameObject | 游戏对象 |
| Parent | 父对象 |
| Spawn Point | 坐标位置,未设置默认世界坐标原点 |
| Position | 偏移量 |
| Rotation | 旋转角 |
- Rotate 自动旋转
| 名称 | 描述 |
|---|---|
| Angle | 单位时间旋转量,默认为帧 |
| Per second | 以秒为单位 |
| Every Frame | 每帧都调用 |
- Destroy 删除对象
- Set Materical Color 设置物体材质的颜色。如不指定材质则为物体上的材质。否则为本地材质。
- Set Int Value 设置变量值
- Int Add 将一个int值增加指定数值。
- Get Random Object 通过标签获得一个随机物体
- Get Mouse Button Down 鼠标按下(注意一旦触发,如未发生等待直接回到该状态时仍会继续触发。)
- Translate 控制对象的移动
- Translate Position 用物理组件控制对象的移动
- Set Position 设置位置
- Camera Fade Out 屏幕变黑
- Restart Level 重启场景
4. 事件发送
- 若想发送给不同物体上一个事件,需先定义一个全局可用的事件。只需勾选事件旁边的单选框即可设置为全局事件

- 设定事件目标为FSM状态机,确定游戏对象以及FSM状态机名称(PlayerMakerFSM组件上的),发送全局事件

| 种类 | 描述 |
|–|–|
| GameObjectFSM | 游戏对象,自己选定FSM状态机名称 |
| FSMComponent | 特定的FSM状态机 |
| BroadcastAll | 所有FSM状态机(可选包不包含自身) |
5. 事件
- Playmaker 允许将自定义事件作为起点,这时触发该事件时会跳转到该位置,优先于自身相同事件。

- Send Message 组件可给C#代码发消息,等同于Unity的发消息,写入方法名称以及参数即可。
- 以下代码可给fsm状态机发送消息。
GetComponent<PlayMakerFSM>().SendEvent("new");
5. 条件判断
- Compare组件表可比较两个值
- 勾选 Every Frame 以在某个特定的时间点触发事件
边栏推荐
- LeetCode 2343. 裁剪数字后查询第 K 小的数字 暴力+语法考察
- Failed to install using npx -p @storybook/cli sb init, build a dedicated storybook by hand
- Use tencent cloud builds a personal blog
- 基于矩阵计算的线性回归分析方程中系数的估计
- Mysql的锁
- KiCad Common Shortcuts
- Spark及相关生态组件安装配置——快速回忆
- 第二十九章:树的基本概念和性质
- [System Design and Implementation] Flink-based distracted driving prediction and data analysis system
- yolov5官方代码解读——前向传播
猜你喜欢

C语言函数参数传递模式入门详解

6.统一记录日志

将SSE指令转换为ARM NEON指令

pygame draw arc

General syntax and usage instructions of SQL (picture and text)

What should I do if the Win10 system sets the application identity to automatically prompt for access denied?

Introduction to C language function parameter passing mode

Detailed explanation of MATLAB drawing function fplot

MATLAB绘制平面填充图入门详解

如何用硬币模拟1/3的概率,以及任意概率?
随机推荐
编译error D8021 :无效的数值参数“/Wextra” cl command line error d8021 invalid numeric argument ‘/wextra‘
Detailed explanation of Golang garbage collection mechanism
STM32LL库——USART中断接收不定长信息
How to reinstall Win7 system with U disk?How to reinstall win7 using u disk?
2021-06-06
Detailed introduction to drawing complex surfaces using the plot_surface command
Introduction to MATLAB drawing functions ezplot explanation
背包问题-动态规划-理论篇
Doubled and sparse tables
专硕与学硕
Fast advanced TypeScript
第二十七章:时间复杂度与优化
Open the door of electricity "Circuit" (1): voltage, current, reference direction
关于c语言的调试技巧
Spark及相关生态组件安装配置——快速回忆
Software Testing Basics (Back)
Based on the least squares linear regression equation coefficient estimation
The SSE instructions into ARM NEON
Redis的线程模型
MATLAB制作简易小动画入门详解