【Fungus笔记】No.3:与 Sprite(精灵) 交互,Click(点击) or Drag(拖拽)
当Block(段落)的响应事件为Sprite类时,可以通过跟Sprite(精灵)的交互来执行指令。
交互行为包括拖拽和点击两种。
首先是 Object Clicked(点击)。
设置为点击事件后,它要求我们选定一个 Clickable Object 作为被点击物体。
除了 Clickable Object 外,我们还可以看到与拖拽事件相关的其他物体。
Fungus默认给的是Mushroom,如果不喜欢,可以自定义为其他图片。
设置好指令后,运行游戏,点击蘑菇。
拖拽事件的理解方式与点击类似,下面以 Drag Entered(拖拽进入)为例再讲一下。
虽然图标比较小,但我们还是可以看到,Draggable Object 引用的是一个C#脚本,而 Target Object 引用的是一个圆形碰撞体(Circle Collider)。
接下来要做的是,当拖拽小蘑菇接触大蘑菇的时候,大蘑菇被刺激到“弹”一下,这个通过 Punch Scale指令(Punch!!!)来实现。
大蘑菇被刺激后,Hero惊讶地Say:“Oh, the small mushroom stimulated the big mushroom!”
Punch Scale与Say之间有先后顺序,可以通过拖拽来调整两条指令的执行顺序。
运行游戏。
在制作游戏时,有时我们需要形成多选一的情况,比如点击 Sprite 1 之后,再点击 Sprite 2 就没有任何反应。这种行为是通过 Fungus 提供的 Sprite类指令 来实现的。
从上往下,指令的功能分别是:
Fade Sprite:从Sprite淡出。(可类比下一篇所讲的内容)
Set Clickable 2D:设置另一个 Clickable Sprite 或自身能否再被点击。
Set Collider:设置其他物体或自身的碰撞体是否被**。
Set Draggable 2D:设置另一个 Draggable Sprite 或自身能否再被拖拽。
Set Mouse Cursor:设置光标的纹理(Texture)。(有些情况下,当光标接触到某个物体时,外表会发生改变)
Set Sorting Layer:修改另一个物体的 Sorting Layer(排列层),使其显现或不可见。
Set Sprite Order:修改其他 Sprite 在 Sorting Layer(排列层)上的 Order,调控 Sprite 间的显示顺序。
Show Sprite:淡入Sprite。(同样可类比下一篇所讲的内容)
下面用两个指令演示一下效果:Set Clickable 2D 和 Set Draggable 2D。
首先创建三个物体,从左到右依次是 Drag、Click 1、Click 2 。
接着在 Flowchart 窗口 中创建三个 Blocks(段落),并分别设置好。
点击 Click 1 后,再点击 Click 2 和拖拽 Drag 都不会再有反应。
区别 Drag Cancelled 和 Drag Started,如果选择 Drag Started ,尽管拖拽不了 Drag,但仍然可以执行 Drag段落 的指令,因为 拖拽动作已经开始(Drag has Started);Drag Cancelled 则表示拖拽动作结束,放开了 Sprite 。
运行游戏(因为我的GIF录制工具不能显示光标,所以拖拽和点击的动作都看不见了,还请大家脑补一下(இωஇ ))。