一、子弹的碰撞检测:
前提 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距离内检测到物体,