unity3d的playmaker插件使用教程,四、物品破坏,道具拾取

模拟破坏一个物体,然后出现拾取道具并将道具拾取的情景。同时演示了如果在不同的状态机下用变量传递信息。


在场景里加入官方的包里面的罐子和破坏掉的罐子底部

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第1张图片


下面蓝色的是破罐子底

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第2张图片


加入方块,去掉mash render,设置可进入



加入模拟玩家的球,

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第3张图片


为方块添加状态机:Setup,Unbroken,Exploading,Broken,添加事件Break,连接状态



在Setup状态机下添加Set Visible动作


把罐子底托进去,设置为不可见

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第4张图片


在Unbroken状态添加Trigger Event动作并设置如下

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第5张图片


playmak可以复制动作


在Exploading状态机下添加Set Visibility动作,设置罐子消失,现实罐子底

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第6张图片


运行预览,开始的状态,罐子底不显示,只显示罐子。

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第7张图片


当进入区域,罐子不显示,显示罐子底



为了效果跟好一点,添加个粒子效果。在Exploading状态机下添加Create Object动作



把粒子效果的预制件拖入动作。物体创建的位置靠拖入到罐子底定位。(下图绿线所示)

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第8张图片


再预览下,进入区域的时候,多了一个粒子效果,感觉好多了。

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第9张图片


把cube改名为bottle,把罐子和罐子底加为bottle的子,然后整个做成预制件。



把官方给定Coin放到场景里,添加Rotate状态机,设置为Y轴每秒旋转360度

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第10张图片


添加子的Cube,用来判断拾取范围。去掉cube的mesh render,设置Collider大小



添加Lisenter、Collected状态机,添加Picked_Up事件,并连接。

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第11张图片


在Lisenter状态机下添加Trigger Event动作,并设置如下

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第12张图片


当发生碰撞的时候,需要把整个Game Object销毁,所以要取得Cube的父。添加Get Parent动作。

其实我觉得,把父做成Cube区域的话就能省点事,不那么麻烦。但是,官方没这么做,为什么,不知道。是为了教学?

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第13张图片


在Collected状态机下添加Destory Obejct动作

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第14张图片


添加一个变量,ParentToDestory,类型是GameObject,

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第15张图片


这样,在Get parent动作的Stroe Result里就能选择新添的变量了。



在Destory Object动作里,

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第16张图片


也就可以选出刚才的变量。

这样,动作Get Parent获取了父对象,将父对象赋值给变量ParentToDestory,

通过变量ParentToDestory,将要销毁的对象传给了动作Destory Object。

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第17张图片


运行预览下,开始状态



靠近以后,Coin消失

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第18张图片


把Coin也做成预制件。



在罐子的Exploading状态机下添加Create Object动作

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第19张图片


这个时候,又需要用到变量来传递创建的Coin的位置。

新增一个GameObject变量CoinSpawnPoint。



官方的例子中,没有把判断取得的Cube添加为顶级的Game Object,所以官方这里用到是Get Parent



我做的时候,把判断区域的Cube添加为顶级的Game Object了,所以,这里可以不添加。



官方的做法是在Exploading的时候,通过变量CoinSpawnPoint把创建位置传过来。



我的做法则是直接把Bottle拖进来

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第20张图片


运行预览,开始的时候

unity3d的playmaker插件使用教程,四、物品破坏,道具拾取_第21张图片


进入区域,罐子破坏,显示粒子特效和金币



拾取金币


你可能感兴趣的:(插件,unity3d,Playmaker)