记得之前,有人问过我,Cocos Creator游戏在运行时如何动态修改节点上面的碰撞器形状,比如跑酷类的游戏中,玩家由直立行走变成铲球侧滑。也就是直立的多边形碰撞器要变成平躺的盒子碰撞器,怎么办?也就是我们需要在同一个节点上添加两个不同形状的碰撞组件,然后在运行过程中,动态切换。
本文我们就通过一个案例,给大家解释下,如何在游戏运行过程中动态切换碰撞组件。
一、 运行效果演示点击链接加入群聊【unity/cocos交流二群】
二、 旋转的星星
新建SimpleMotion.js,挂载到StartA上面,代码如下:
三、 碰撞监听及碰撞回调
新建ColliderListener.js挂载到StarA节点,代码如下:
然后复制此节点得到StarB节点。
四、 控制按钮
1. 按钮的设计技巧
每个按钮的根节点命名跟对应的Collider前缀保持一致。每个按钮组件Button的Target属性为此根节点。
新建ShowCollider.js,内部提供一个方法onBtnClick(event),挂载到Canvas节点上。然后,设置Polygon按钮上的Button组件的点击回调方法为onBtnClick(event),如下图所示:
拷贝、粘贴,同时修改节点的Button组件的Target属性、节点上显示的文件内容,以及节点的位置。
然后复制StarA节点得到StarB用于控制第二个星星StarB。
2. onBtnClick(event)
运行测试结果如下: