【风宇冲】Unity3D教程宝典之Raycast

原创文章如需转载请注明:转载自风宇冲Unity3D教程学院


                                                                  Raycast

Ray只有起点和方向.函数附加x距离内的条件。

用到的Raycast主要有两个:
Physics.Raycast
作用于任何物体,可以加限定 只检测某layer层
  1. RaycastHit hit;
  2. if(Physics.Raycast(transform.position, Vector3.down,out hit, 1000f))
  3.     print("dawdddd");

  1. RaycastHit hit;
  2. if(Physics.Raycast(transform.position, Vector3.down,out hit, 1000f,8))
  3.     print("dawdddd");
Collider.Raycast
只检测ray是否穿过该Collider
  1. RaycastHit hit;
  2. Ray ray= new Ray(transform.position,Vector3.down);
  3. if(collider.Raycast(ray,out hit,100))
  4.             print("dawdddd");


注意:
(1)无论是哪种raycast检测,从物体内部穿到外面的,都不视为穿过。只有从物体外穿到里面的才视为穿过。
(2)可以绘制 可见线 来辅助开发
1.Debug.DrawLine(V3 start,V3 end);
2. Gizmos.DrawLine     (可以在编辑模式下显示,可视化更强)
如果在scene的Gizmos选项下 勾选 3D Gizmos, 那么线段位于真实3D空间里,有前后遮挡。
如果不勾选,则gizmo永远在最前显示。
  1.     void OnDrawGizmos () {
  2.         Vector3 checkPos_a =transform.position + new Vector3(0,0,0.2f);
  3.      
  4.         Gizmos.color = Color.green;
  5.         Gizmos.DrawLine(checkPos_a,checkPos_a + Vector3.down*15);
  6.     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值