自:http://blog.csdn.net/Monzart7an/article/details/24435843

目前来说有三种思路,其实前两种算变种了:

1、动画关键帧回调 + 范围检测。

这个是在Asset store上面下的一个例子中看到的,其实之前在做端游时,也差不多是这样做的,就是挥武器的动作到某一帧的时候,计算武器位中心的范围内有木有怪物,有的话,就给这个目标添加伤害。范围检测用到的函数是这个:

Physics.OverlapSphere

 

static function OverlapSphere(position: Vector3, radius: float, layerMask: int = AllLayers): Collider[];
 
Description

Returns an array with all colliders touching or inside the sphere.

这个方法其实对于大部分游戏来说是足够了,性能上也没有什么开销。

2、动画关键帧回调 + 线性检测。

这个是从下面这位同学这里看到的哈,思路就是在武器的运动轨迹上选几个点,然后在这几个点上做线性检测。感觉这个比较适合做拿斧子横向砍一刀哈。

http://blog.sina.com.cn/s/blog_8373d8f00101989i.html

不过我觉得不必要向上面的链接里面说的,每帧都取值来算,可以在动画设置几个关键帧,然后记录当前关键帧的点和上一个关键帧的点做射线检测。用到的函数是这个:

Physics.Linecast

static function Linecast(start: Vector3, end: Vector3, layerMask: int = DefaultRaycastLayers): bool;
 
Description

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中武器与人物的碰撞检测的更多相关文章

  1. 动画重定向技术分析和Unity中的应用

    http://www.jianshu.com/p/6e9ba1b9c99e 因为一些手游项目需要使用Unity引擎,但在动画部分需要使用重定向技术来实现动画复用,考虑到有些项目开发人员没有过这方面的经 ...

  2. 动画重定向技术分析及其在Unity中的应用

    前言 笔者新的手游项目使用Unity引擎,动画部分要使用重定向技术来实现动画复用.笔者之前在大公司工作的时候对这块了解比较深入,读过Havok引擎在这部分的实现源码,并基于自己的理解,在公司自研的手游 ...

  3. Unity 中 使用c#线程

    使用条件   天下没有免费的午餐,在我使用unity的那一刻,我就感觉到不自在,因为开源所以不知道底层实现,如果只是简单的做点简单游戏,那就无所谓的了,但真正用到实际地方的时候,就会发现一个挨着一个坑 ...

  4. 在Unity中高效工作(下)

    原地址:http://www.unity蛮牛.com/thread-20005-1-1.html Tips for Creating Better Games and Working More Eff ...

  5. 关于Unity中的刚体和碰撞器的相关用法(二)

    在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...

  6. 关于Unity中的NavMeshAgent的remainingDistance问题

    Unity中的NavMeshAgent的remainingDistance问题 在Unity官方案例中,要让某个人物移动到某个地方,一般来说都是下面这样的代码: agent.SetDestinatio ...

  7. 游戏的物理和数学:Unity中的弹道和移动目标提前量计算

    下载地址:https://www.jianguoyun.com/p/DZPN6ocQ2siRBhihnx8 弹道计算是游戏里常见的问题,其中关于击中移动目标的自动计算提前量的话题,看似简单,其实还是挺 ...

  8. Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(下)

    http://forum.china.unity3d.com/thread-32273-1-1.html 今天我们继续分享米哈游技术总监贺甲在Unite Beijing 2018大会上的演讲<在 ...

  9. 关于Unity中的UGUI优化,你可能遇到这些问题

    https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...

随机推荐

  1. interrupt_control

    中断的概念CPU在处理过程中,经常需要同外部设备进行交互,交互的方式由“轮询方式”“中断方式” 轮询方式: 方式:在同外设进行交互的过程中,CPU每隔一定的时间状态就去查询相关的状态位,所以在交互期间 ...

  2. jQuery学习总结2

    六.动画效果 6.1.基本 hide([speed,[fn]])隐藏显示的元素 speed: 三种预定速度之一的字符串("slow","normal", or ...

  3. poj 1328 Radar Installation 排序贪心

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 56702   Accepted: 12 ...

  4. C#高级编程9-第9章 字符串和正则表达式

    字符串和正则表达式 String类 String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显 ...

  5. Jmeter学习之— 参数化、关联、断言、数据库的操作

    一. Jmeter参数化1. 文件参数化解释:创建测试数据,将数据写入TXT文件文件中,然后Jmeter从文件中读取数据.例如用户注册操作:1. 首先在Jmeter下创建一个线程组,如下图: 2. 然 ...

  6. js 闭包范式概述

    在前几篇文章中我介绍过js的闭包,这一篇主要简单的介绍一下js中闭包的范式. 那么何谓闭包的范式呢? 首先回想一下闭包的概念,闭包是外部函数与函数内部之间通信的桥梁,通过对函数的返回,使得外部的函数能 ...

  7. systemtap 用户态调试2

    [root@localhost ~]# cat user.stpprobe process(@1).function(@2){print_ubacktrace();exit();} session 1 ...

  8. PHP个人博客系统开发历程

    声明: Author:GenialX GenialX's QQ:2252065614 GenialX's URL:胡旭博客 - www.ihuxu.com 一年多曾经的某一天,我在上交实验报告时,偶然 ...

  9. Big Number------HDOJ杭电1212(大数运算)

    Problem Description As we know, Big Number is always troublesome. But it's really important in our A ...

  10. 建议:一般地,建议使用xcode 4.3开发app 而不是使用xcode4.5

    建议:一般地,建议使用xcode 4.3开发app 而不是使用xcode4.5 因为,xcode4.5 默认的sdk 是ios6.0,这里面有很多新特性.比如,Autolayout 等,这个特性再io ...