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。

  • 相关阅读:
    [转] iphoneX、iphoneXS、iphoneXSMax、iphoneXR适配
    [转] 以 async/await 为例,说明 babel 插件怎么搭
    [转] 使用Node.js实现简易MVC框架
    [转] vue异步处理错误
    [转] 谈谈前端异常捕获与上报
    everything 13问
    Mysql 工具mysqlbinlog
    Mysql 删除日志
    Mysql 错误 ERROR 1 (HY000) at line 1: Can't create/write to file '/home/kaizenly/cfg_dict.csv' (Errcode: 13
    Mysql 问题集
  • 原文地址:https://www.cnblogs.com/yaoxiaping/p/8116573.html
Copyright © 2011-2022 走看看