鼠标与射线

1、ray与raycasthit的概念?

ray是一个射线,有起点与终点,但是一般在碰撞检测中这两点并不决定射线长度。一般在raycast中用distance来表示射线的终点长度。

physics.raycast是一个用来的进行射线碰撞检测的函数。

raycasthit是一个用来装射线碰撞到的物体的集合。

 

2、如何计算鼠标点中了什么物体,或者屏幕正中的射线击中了什么物体?

void Update ()
 {
 RaycastHit hits1;
 //Ray ray1=new Ray(transform.position,transform.forward);

//上面这句只有放在main camera时是正确的,不能放在first controler里作为脚本,否则,first controler是无法上下转动的,只有camera才能上下转动。
 //Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);

//上面这句可以检测屏幕中心到鼠标位置的射线


 Ray ray1 =new Ray(GameObject.Find("Main Camera").transform.position,GameObject.Find("Main Camera").transform.forward);

//上面这句,检测摄象机中心点发射的射线。
  if(Input.GetMouseButton(0)&&Physics.Raycast(ray1,out hits1,1000.0f))
  {
   

   if(hits1.collider.rigidbody)
   {
    hits1.collider.rigidbody.AddForce(0,1000,0);
    //Debug.Log(hits1.collider.gameObject.name);
   }
  }
 }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值