Unity中武器与人物的碰撞检测
来源:互联网 发布:mac launchpad 添加 编辑:程序博客网 时间:2024/04/28 16:11
目前来说有三种思路,其实前两种算变种了:
1、动画关键帧回调 + 范围检测。
这个是在Asset store上面下的一个例子中看到的,其实之前在做端游时,也差不多是这样做的,就是挥武器的动作到某一帧的时候,计算武器位中心的范围内有木有怪物,有的话,就给这个目标添加伤害。范围检测用到的函数是这个:
Physics.OverlapSphere
Returns an array with all colliders touching or inside the sphere.
这个方法其实对于大部分游戏来说是足够了,性能上也没有什么开销。
2、动画关键帧回调 + 线性检测。
这个是从下面这位同学这里看到的哈,思路就是在武器的运动轨迹上选几个点,然后在这几个点上做线性检测。感觉这个比较适合做拿斧子横向砍一刀哈。
http://blog.sina.com.cn/s/blog_8373d8f00101989i.html
不过我觉得不必要向上面的链接里面说的,每帧都取值来算,可以在动画设置几个关键帧,然后记录当前关键帧的点和上一个关键帧的点做射线检测。用到的函数是这个:
Physics.Linecast
Returns true if there is any collider intersecting the line between start
and end
.
3、碰撞体回调
给武器上挂一个空的GameObject,然后给这个GameObject挂上一个Collider(勾选山IsTrigger)和RigidBody,然后监听void OnTriggerEnter( Collider other )事件。
我这次做的这个Demo也就是用的这种哈,没有大规模的测试,只是做了一个Demo,据网上说这个会有性能上的开销,以后有机会测试一下。
欢迎高手补充。
- Unity中武器与人物的碰撞检测
- unity 人物碰撞范围的动态修改
- 【Unity入门】碰撞检测与触发检测
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity3d碰撞检测中碰撞器与触发器的区别
- Unity碰撞检测中OnTriggerXXX和OnCollisionXXX的功能注解
- 手机游戏人物与地图的碰撞
- OnTriggerEnter与Rigidbody-Unity碰撞检测
- unity中射线碰撞检测总结
- unity中碰撞检测相关问题
- 游戏内引导评价实现
- org.hibernate.HibernateException: No Session found for current thread
- hdu1141
- AT&T 汇编和 GCC 内联汇编简介
- SQL关系数据库连接类型
- Unity中武器与人物的碰撞检测
- C# 面向对象的思想
- system函数与LD_PRELOAD变量
- 百度地图之调用javaScript api接口实现多点标注及显示提示信息
- memmove实现
- storyboard用代码跳转的几种方法
- 【好产品赏析】红人圈-给用户超出预期的体验
- web services + axis2
- msbuild introduction