Unity 碰撞位置
获取碰撞位置的方法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 碰撞位置相关推荐
- Unity 碰撞事件 触发事件
Unity 碰撞事件 触发事件 碰撞和被碰撞的物体都需要加有 Collider 碰撞组件 两个物体至少有一个带有刚体 触发器需要在Collider组件中勾选Trigger属性 1.触发器事件 //触发 ...
- Unity 碰撞距离设定
官方参数解释:Default Contact Offset Unity - Manual: Physics (unity3d.com) 设置碰撞检测系统用于产生碰撞接触的距离.该值必须为正,如果设置得 ...
- Unity 碰撞体 composite
unity中盒型碰撞体与多边形碰撞体有used by composite这一选项,如果勾选这一选项代表该碰撞体可以被之后添加的composite 复合碰撞体使用,复合碰撞体会将该碰撞体的box与pol ...
- Unity 碰撞器和触发器的理解
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对 ...
- Unity碰撞和碰撞检测
所谓带碰撞效果是指有物理效果,比如碰了要发生位移之类的.而检测是用在只是检测是否发生了碰撞. 比如一个足球游戏中,用碰撞的思路来判定足球是否出边线,我们会在边线附近摆一个碰撞体,当球碰到边线时,我们并 ...
- Unity碰撞体不碰撞以及代码添加EventTrigger事件
文章目录 前言 一.同类型物体的碰撞体不发生碰撞 二.代码控制EventTrigger添加事件 总结 前言 本文所记内容有两点: 一.同类型物体的碰撞体不发生碰撞. 二.代码控制EventTrigge ...
- Unity 碰撞体和刚体的区别(应用)
很多初学者都会问这么一个问题,那就是碰撞体和刚体到底有什么区别,以及如何应用 两句话概括碰撞体: 碰撞体才能被射线检测到,否则无法被检测 碰撞体是产生碰撞的前提 两句话概括刚体: 需要模拟重力的自由下 ...
- unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍
(本文作者 @对马骑马使用炎拳 ) 今年年中的时候,<最后生还者2>引发了业界非常热烈的大讨论. 有关剧情.人物描绘的争议自然是最为集火的一环.可参看这里: 如何评价游戏<最后生还者 ...
- 直播笔记 | Unity中射线检测详解
本文首发于洪流学堂微信公众号. 洪流学堂,学Unity快人几步 你好,我是郑洪智,你的技术探路者. 这周三我们直播剖析了Unity中射线检测的功能,以下是直播内容精华部分笔记. 完整录播:https: ...
最新文章
- 蓝桥杯乘法运算java,第四届蓝桥杯Java B——有理数类
- ffmpeg文档29-放缩选项
- 设置图片圆角 或者圆形
- CF1131 G. Most Dangerous Shark (单调栈优化dp)
- 用生动的例子花式解释:python类中一定需要有 __init__方法么?没有会怎样?
- 亚洲食品市场挑战:了解亚洲新消费群体
- rsync 服务器文件同步备份
- aws rds监控慢sql_AWS RDS SQL Server恢复模型,备份和还原
- 深度学习模型的可视化技术总结
- 威纶通触摸屏与仪表通讯_用博途建立西门子触摸屏和S7300PLC的通讯
- 2018年国内十大技术突破:22纳米光刻机、大型航天器回收
- 激光打印机无线服务器,插上无线翅膀 兄弟1218W激光打印机评测
- Hyperledger Fabric教程--Peer命令
- True Liars POJ - 1417
- 计算机无纸化考试知识点,计算机二级VFP无纸化考试重点和难点
- java 栈队列区别是什么意思_Java实现数据结构栈stack和队列Queue是什么?
- PPT制作技巧汇总之动画设置与播放(office 2007)
- 2021河南高考成绩查询倒计时,距离2021年高考天数 2021高考倒计时
- UG编程常用刀路参数功能详解,值得收藏的内容
- SQLSever 2000 安装环境
热门文章
- linux操作系统安全防护
- android bp文件_Android编译系统中的Android.bp【转】
- Xcode 12 GM发行说明,快来看看SwiftUI和Swift都更新哪些新技术吧
- 中科大计算机网络空间安全,2020年中国科学技术大学网络空间安全考研经验分享...
- 教你如何查看Ubuntu版本
- 微信小程序--小程序及微信生态圈
- 关于fstream的flush
- C++ 之 linux环境下路径操作
- 分页插件PageHelper失效
- php三元运算符怎么用,PHP三元运算符使用说明