获取碰撞位置的方法1:使用 Collider.ClosestPoint

Returns a point on the collider that is closest to a given location.

返回碰撞器上最接近给定位置的点。

下方是子弹打到物体上,生成撞击火星的代码:

    // 碰撞体的检测 private void OnCollisionEnter(Collision collision){Debug.Log(collision);Vector3 location = this.transform.position;Vector3 closestPoint = collision.collider.ClosestPoint(location);// 生成子弹撞击的火星GameObject impact_obj = Instantiate(bullet_Impact_EF);impact_obj.transform.position = closestPoint; impact_obj.transform.localScale = Vector3.one;Destroy(this.gameObject);}

效果如下:

获取碰撞位置的方法2:使用射线,找到碰撞点

具体做法是,在子弹上,挂一个射线检测脚本,伪代码如下:

返回碰撞器上最接近给定位置的点。

    // Update is called once per framevoid Update(){// 生成一条从起始点o, 以方向d为延展的射线Ray ray = new Ray(m_trans.position, m_trans.forward);// hit用于从光线投射中, 获取信息的结构RaycastHit hit;// 射线, 抛出的碰撞信息, 射线长度(注意, 碰撞体越小, 速度越快, 越容易帧缺失)if (Physics.Raycast(ray, out hit, 6, targetMask)){// 从起点到碰撞点画一条线Debug.DrawLine(ray.origin, hit.point, Color.red);Debug.Log(hit.transform.name);}}

以前写过,结果工程找不到了,还得重写,这次干脆记录到博客里吧,希望对别人也有用。

Unity 碰撞位置相关推荐

  1. Unity 碰撞事件 触发事件

    Unity 碰撞事件 触发事件 碰撞和被碰撞的物体都需要加有 Collider 碰撞组件 两个物体至少有一个带有刚体 触发器需要在Collider组件中勾选Trigger属性 1.触发器事件 //触发 ...

  2. Unity 碰撞距离设定

    官方参数解释:Default Contact Offset Unity - Manual: Physics (unity3d.com) 设置碰撞检测系统用于产生碰撞接触的距离.该值必须为正,如果设置得 ...

  3. Unity 碰撞体 composite

    unity中盒型碰撞体与多边形碰撞体有used by composite这一选项,如果勾选这一选项代表该碰撞体可以被之后添加的composite 复合碰撞体使用,复合碰撞体会将该碰撞体的box与pol ...

  4. Unity 碰撞器和触发器的理解

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...

  5. Unity碰撞和碰撞检测

    所谓带碰撞效果是指有物理效果,比如碰了要发生位移之类的.而检测是用在只是检测是否发生了碰撞. 比如一个足球游戏中,用碰撞的思路来判定足球是否出边线,我们会在边线附近摆一个碰撞体,当球碰到边线时,我们并 ...

  6. Unity碰撞体不碰撞以及代码添加EventTrigger事件

    文章目录 前言 一.同类型物体的碰撞体不发生碰撞 二.代码控制EventTrigger添加事件 总结 前言 本文所记内容有两点: 一.同类型物体的碰撞体不发生碰撞. 二.代码控制EventTrigge ...

  7. Unity 碰撞体和刚体的区别(应用)

    很多初学者都会问这么一个问题,那就是碰撞体和刚体到底有什么区别,以及如何应用 两句话概括碰撞体: 碰撞体才能被射线检测到,否则无法被检测 碰撞体是产生碰撞的前提 两句话概括刚体: 需要模拟重力的自由下 ...

  8. unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍

    (本文作者 @对马骑马使用炎拳 ) 今年年中的时候,<最后生还者2>引发了业界非常热烈的大讨论. 有关剧情.人物描绘的争议自然是最为集火的一环.可参看这里: 如何评价游戏<最后生还者 ...

  9. 直播笔记 | Unity中射线检测详解

    本文首发于洪流学堂微信公众号. 洪流学堂,学Unity快人几步 你好,我是郑洪智,你的技术探路者. 这周三我们直播剖析了Unity中射线检测的功能,以下是直播内容精华部分笔记. 完整录播:https: ...

最新文章

  1. 蓝桥杯乘法运算java,第四届蓝桥杯Java B——有理数类
  2. ffmpeg文档29-放缩选项
  3. 设置图片圆角 或者圆形
  4. CF1131 G. Most Dangerous Shark (单调栈优化dp)
  5. 用生动的例子花式解释:python类中一定需要有 __init__方法么?没有会怎样?
  6. 亚洲食品市场挑战:了解亚洲新消费群体
  7. rsync 服务器文件同步备份
  8. aws rds监控慢sql_AWS RDS SQL Server恢复模型,备份和还原
  9. 深度学习模型的可视化技术总结
  10. 威纶通触摸屏与仪表通讯_用博途建立西门子触摸屏和S7300PLC的通讯
  11. 2018年国内十大技术突破:22纳米光刻机、大型航天器回收
  12. 激光打印机无线服务器,插上无线翅膀 兄弟1218W激光打印机评测
  13. Hyperledger Fabric教程--Peer命令
  14. True Liars POJ - 1417
  15. 计算机无纸化考试知识点,计算机二级VFP无纸化考试重点和难点
  16. java 栈队列区别是什么意思_Java实现数据结构栈stack和队列Queue是什么?
  17. PPT制作技巧汇总之动画设置与播放(office 2007)
  18. 2021河南高考成绩查询倒计时,距离2021年高考天数 2021高考倒计时
  19. UG编程常用刀路参数功能详解,值得收藏的内容
  20. SQLSever 2000 安装环境

热门文章

  1. linux操作系统安全防护
  2. android bp文件_Android编译系统中的Android.bp【转】
  3. Xcode 12 GM发行说明,快来看看SwiftUI和Swift都更新哪些新技术吧
  4. 中科大计算机网络空间安全,2020年中国科学技术大学网络空间安全考研经验分享...
  5. 教你如何查看Ubuntu版本
  6. 微信小程序--小程序及微信生态圈
  7. 关于fstream的flush
  8. C++ 之 linux环境下路径操作
  9. 分页插件PageHelper失效
  10. php三元运算符怎么用,PHP三元运算符使用说明