经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 游戏设计 » 查看文章
unity物理检测的几种方式
来源:cnblogs  作者:小辉歌  时间:2019/2/20 9:19:53  对本文有异议

(由于本人大多做2d游戏,因此以下以2d为主介绍,但是具体和3d相差不大)

在unity中有很多不同的物理检测方式,但是大致可以分为以下几种:

1.Physics2d检测系列

  Physics2d.LineCast   //linecast与raycast相同,只是表现的方式不同,适合用于枪械的激光射线等

  Physics2D.RayCast

  Physics2D.LineCastAll   //获得两点之间的所有碰撞体,适合做视野检测

  Physics2D.RayCastAll

  Physics2D.BoxCast    //往给定的方向的方形区域中的检测,这里适合检测前方是否有墙体等

  Physics2D.OverlapArea  //覆盖范围检测

2.RigidBody2D检测系列

  rigidbody2D.cast        //往某一个方向检测除了自身和子物体意外的所有碰撞体,获得所有碰撞点,这种方式的好处是可以检测玩家是否站在某一个碰撞体上,从而决定是否可以进行跳跃操作,具体见我的博客《unity中利用纯物理工具制作角色移动跳跃功能》

  rigidbody2D.overlapxx  //覆盖范围检测

3.碰撞器与触发器物理事件(常用)

 

在物理参数中常常遇到ContactFilter,这个参数其实是多个参数的集合体,为的是使得函数使用起来更加简洁

另外说一下,官方的手册真的很清晰,即使是英文的,总体上也比较易懂

 

这里介绍一下BoxCast中的distance参数,这个distance是否可以理解为矩形往这个方向移动的一小段距离,在这个距离,或者说把这个矩形看作是一个很粗的射线的一个片元,好吧,我没有做个相关检测,这里我瞎猜一下。换种说法,这个矩形就好像一个photoshop画笔的形状,distance就是画笔画过的距离,当画笔画到终点,所覆盖的区域所检测到的碰撞体就是检测到的结果;或者类似手电筒,distance是手电筒光的长度。简单说,这是个有宽度的射线检测

原文链接:http://www.cnblogs.com/xiaoahui/p/10403923.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号