您的位置:首页 > 移动开发 > Unity3D

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

2016-03-31 15:11 591 查看
模拟破坏一个物体,然后出现拾取道具并将道具拾取的情景。同时演示了如果在不同的状态下用变量传递信息。

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



下面蓝色的是破罐子底



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



加入模拟玩家的球,



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



在Setup状态下添加Set Visible动作



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



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



playmak可以复制动作



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



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



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



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



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



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



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



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



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



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



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



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

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



在Collected状态下添加Destory Obejct动作



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



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



在Destory Object动作里,



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

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

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



运行预览下,开始状态



靠近以后,Coin消失



把Coin也做成预制件。



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



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

新增一个GameObject变量CoinSpawnPoint。



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



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



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



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



运行预览,开始的时候



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



拾取金币

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: