PICO 4 开发初尝试2(实现物体组合运动)
在上一章中明确了组合的逻辑是采用固定关节实现的,那么现在将整个组合的过程划分为3个阶段。
判断阶段:这个阶段主要负责检测是否需要组合
定位阶段:当需要组合时组合物应当以什么位置什么角度进行定位
组合阶段:当定位完成,生成固定关节将两个物品组合起来

判断是否组合使用的是触发器与碰撞体之间的检测,首先为一个方块添加一个触发器,当触发器与碰撞体发生碰撞后会调用OnTriggerEnter()方法,这样就完成了逻辑的判断。
但是由于任何的碰撞体都能触发OnTriggerEnter()所以我们要为可以进行连接的物体添加一个tag,让tag匹配的物品才能触发组合。

然后是组合定位,让组合的物体知道自己应该在什么地方可以借鉴一下王国之泪的物品组合方法,在物体上挂载连接点,通过连接点的位置和朝向来让物体知道连接后的准确位置。


两个白点的位置就是连接点的位置(连接点是一个空物体仅用于挂载触发连接逻辑的碰撞体和定位,图中为了方便观察,我渲染了两个白点并不会对实际的运行有任何影响)
当两个物体连接在一起时我们先把连接物的方向调整为与被连接物一致,然后通过连接点与物体锚点的相对位置计算出组合后物体正确的位置。

到了最简单的物品组合阶段,只需要创建一个固定关节将二者组合起来就可以了,不过要注意使用固定关节要求物体上有刚体组件。下面我会给出OnTriggerEnter()内部的代码参考。


注意点:
在物品组合的时候要先让物品停下来,不然可能会在组合的时候出现对不齐的情况
要关闭触发器,避免多次触发组合逻辑创建过多的固定关节组件
设置好物品的tag,避免物品与无关物品组合