zoukankan      html  css  js  c++  java
  • Unity + Spine 碰撞检测

    通过自己在开发的游戏过程中发现有几种做碰撞检测的方法:
    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。

  • 相关阅读:
    flutter  安装教程
    使用TcpTrace小工具截获Web Service的SOAP报文
    移除TFS服务器关系
    webservice log4net日志写入失败
    php发送邮件功能(PHPMailer-master插件)
    Unity3d:延迟加载ScrollView的内容
    Unity3d:播放物理目录下的MP3文件
    installshield Basic 工程每次安装完提示重启电脑
    网站背景音乐源码
    Unity3d:加载Format是RGB24位的图片失败(加载图片显示问号)
  • 原文地址:https://www.cnblogs.com/yaoxiaping/p/8116573.html
Copyright © 2011-2022 走看看