码迷,mamicode.com
首页 > 编程语言 > 详细

Unity + Spine 碰撞检测

时间:2017-12-26 10:26:54      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:位置   att   mes   矩形   过程   简单的   最好   否则   自动生成   

通过自己在开发的游戏过程中发现有几种做碰撞检测的方法:
1. 只在unity中添加collider
这是最简单的一种。在Spine中编辑好骨骼动画以后导入到unity中,让后spawn bone就可以得到在Spine中的骨架,然后在需要的骨骼上加上collider。这种方法对于简单的碰撞应用还可以,但是复杂一点就不好用了,比如在某一帧需要去掉碰撞,这就做不到。而且在编辑collider的时候对于复杂多变的bone也很不好勾勒碰撞区。

2.在Spine中添加专用的碰撞骨骼
在Spine中可以专门多创建一些额外的骨骼(attach上一张纯色矩形图片作为碰撞区域)用来作为碰撞检测用,这样就可以在K动画的时候在每一帧缩放这些骨科老调整碰撞局域,如果将骨骼缩放为0那么那一帧实际上就没有碰撞局域了。
当然这种方法也有缺点,这样的碰撞区域虽然会随着骨骼缩放,但是只能用矩形的collider,这样势必没有那么精确。
注意:在做骨骼的时候,要注意骨骼的起点要落在纯色图片的中心,这样在unity中添加collider的时候,collider位置才会正确,否则会有偏移。
3.使用Spine中的bounding box
这是目前我找到的最好的碰撞解决方案。在Spine中可以给贴图添加上bounding box,这个box其实是一个多边形,可以在K动画的时候影藏,也可以随着贴图的骨骼缩放,甚至还可以像mesh一样对他的顶点进行拖拽来调整边框,这种方法非常灵活,精确,在导入到unity后可以通过bouding box来自动生成polygon collider。

Unity + Spine 碰撞检测

标签:位置   att   mes   矩形   过程   简单的   最好   否则   自动生成   

原文地址:https://www.cnblogs.com/yaoxiaping/p/8116573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!