Unity子弹的射线检测

本文介绍了在Unity中如何实现子弹的射线检测及碰撞效果。首先,确保子弹和目标都有Collider组件,然后在Update()方法中通过Physics.Raycast进行射线检测。在检测到碰撞时执行相应操作。此外,还详细讲解了子弹的生成过程,包括从屏幕中心位置发射射线,根据是否命中目标调整子弹的朝向。
摘要由CSDN通过智能技术生成

一、子弹的碰撞检测:

前提 1是子弹上加射线检测代码的脚本 2碰撞的物体和子弹都要有Collider 这样射线才能够检测到碰撞的物体,并存储到RaycastHit(射线投射碰撞信息)中,用RaycastHitt(射线投射碰撞信息)中的collider的父物体来判断是否有碰撞到了 想要碰撞的物体
在每一帧的执行,都向上一帧发射射线,不断地检测射线中是否有穿过的障碍物体

void Update () {
transform.Translate (Vector3.forward * Speed * Time.deltaTime);
//用射线检测,子弹的碰撞,当物体在两点之间产生的射线内时,算作发生碰撞
//1.获得射线的起点(原点)
//2.获得射线的方向
//3.获得射线的距离
Vector3 oriPos = transform.position;//1.射线的起点
Vector3 direction = transform.position - oriPos;//2.方向 因为脚本在子弹上,所以transform默认为子弹的方向
float ength = (transform.position - oriPos).magnitude;//3.射线的距离,取向量的大小
//光线投射碰撞
RaycastHit hitinfo;//存储碰撞信息
//光线投射,检测是否发生碰撞
bool isCillider = Physics.Raycast (oriPos,direction,out hitinfo,ength);
if (isCillider) {
//射线在direction距离内检测到物体,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值