unity2d使用playmaker结算页面底色

unity2d使用playmaker结算页面底色,第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")

1

1

5. 条件判断

Compare组件表可比较两个值

勾选 Every Frame 以在某个特定的时间点触发事件

建议在同一个循环中,只放置一个事件结构。此时,当一个事件发生时,事件结构将对事件进行处理,然后继续循环,事件结构再等待下一个事件发生。如在同一个循环中放置两个事件结构,只有在两个事件结构都处理了事件后,循环才能继续。如对事件结构启用了前面板锁定,用户与前面板交互时,VI的界面友枝灶可能会发生不响应。

例如,在同一个While循环中放置两个事件结构,用第一个事件结构处理“鼠标按下”事件,用第二个事件结构处理“键按下”事件,当用户单击鼠标时,第一个事件结构将收到一个“鼠标按下”事件。第一个事件结构可正确处理该事件并结束执行。同时,第二个事件结构将等待“键按下”事件发生。如用户按下某个键,第二个事件结构将收到“键按下”事件。当第二个事件结构结束对事件的处理时,将继续下一个While循环。如用户不断地在两个 *** 作之间切换:触发“鼠标按下”事件、“键按下”事件、“鼠标按下”事件、“键按下”事件等等,事件结构按预期处理搭樱发生的事件,循环得以继续,VI可流畅地运行。

然而,如用户单击鼠标之后再次单击,连续触发了两个“鼠标按下”事件,其间没有发生“键按下”事件,用户界面将陷入挂起状态。当用户第一次单击鼠标时,第一个事件结构接收到一个“鼠标按下”事件并对事件进行处理,然后结束执行。然而,第二个事件结构将继续等待“键按好扮下”事件,从而阻止了下一个While循环的执行。当用户第二次单击鼠标时,LabVIEW将触发第二个“鼠标按下”事件,并在第一个事件结构处理该事件之前锁定前面板。于是,VI就陷入了死锁状态。第一个事件结构无法在下一个While循环开始之前执行,而下一个While循环又无法在第二个事件结构收到并处理“键按下”事件前开始。“键按下”事件将不可能发生,因为前面板已被锁定。前面板将保持锁定状态,且无法响应用户的 *** 作,直到用户中止该VI。

为避免前面板锁定时用户界面陷入挂起状态,应单独对VI中事件结构需要处理的所有事件进行配置,或者确保While循环中只包含一个事件结构。此外,应确保任何时候总有一个可用的事件结构能够处理发生的事件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11986225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存