Unity射线相关

       射线,顾名思义是发射出的一条线,他是由两点决定的,在Unity中 ,无论2D还是3D他都有着很重要的作用,他可以在2D中检测起跳高度,3DFPS中检测弹道,Moba中用右键确定位置,好了闲话不说,进入正题.在Unity中可以使用Ray ray = new Ray()的方式创建,具体如下:

Ray ray = new Ray()

ray.orgin = Vector3.zero;

ray.direction = Vector.forward

一.射线的创建

       这时一条普普通通的射线就创建好了,当然还可以使用他的有参构造方法Ray ray = new Ray(Vector3.zero,Vector3.forward) 的方法创建射线.

二.发射射线

       射线主要的应用就是射线的碰撞检测,要先实现这个功能,我们要运用到的就是Physics类方法下的Raycast方法.

       具体的方法如下:

        static bool RayCast(Ray ray,out RayCastHit hitInfo);

       这个方法有多个重载,根据实际需求我们可以选择不同的重载,通过这个方法,我们可以获取到hitInfo,他是一个结构体类型,通过它我们可以获取到射线与物体碰撞的点,hitInfo.point,也可以获取到hitInfo.collider等等.射线在场景中我们是看不到的,在初学的时候,我们可以使用Debug.DrawLine()方法绘制出射线,方便我们更好的理解射线.

三.射线的应用

       这里我用一个小例子来让大家体会一下射线在unity中的应用.

       在场景中创建一个cube创建一个plane 利用射线的原理使立方体缓慢移动到鼠标的点击位置.

       这个小练习的重点在于两个判断,鼠标是否点击,射线碰撞.以及运用到两个方法Camera.main.ScreenPointToRay()以及Physics.Raycast(),特别注意缓慢移动以及要移动到目标位置.一般这里初学者容易犯错误.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值