首页 > 其他 > 详细

发射射线

时间:2019-05-24 12:19:46      阅读:107      评论:0      收藏:0      [点我收藏+]
         public float range = 100f;
         Ray shootRay = new Ray();
 
         RaycastHit shootHit;
  
         int shootableMask;

          shootableMask = LayerMask.GetMask ("Shootable");
          shootRay.origin = transform.position;
        
          shootRay.direction = transform.forward;
          if(Physics.Raycast (shootRay, out shootHit, range, shootableMask))
       
{
       
 oa-ob=ba
}
 GameObject wrapper; // 外层物体  
        GameObject target; // 内层物体  
        string info = ""; // 碰撞检测信息  

        void Update () {  

        if(Input.GetMouseButton (0))  
        {  
        // 当鼠标左键按下时,向鼠标所在的屏幕位置发射一条射线  
           Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);  
           RaycastHit hitInfo;  
           if(Physics.Raycast(ray, out hitInfo))  
         {  
            // 当射线与物体发生碰撞时,在场景视图中绘制射线  
            Debug.DrawLine(ray.origin, hitInfo.point, Color.red);  
            // 获得第一次碰撞的外层物体对象  
            wrapper = hitInfo.collider.gameObject;  
            // 以第一次的碰撞点为起点,沿原来的方向二次发射射线  
             Ray ray2= new Ray(hitInfo.point, ray.direction);  
             RaycastHit hitInfo2;  
             if(Physics.Raycast(ray2, out hitInfo2))  
             {  
               //当射线与内层物体碰撞时,在场景中绘制射线  
               Debug.DrawLine(ray2.origin, ray2.direction, Color.green);  
               //获得内层物体对象  
               target = hitInfo2.collider.gameObject;  
               //将外层物体的网格隐藏  
               wrapper.GetComponent<MeshRenderer().enabled = false;  
               //设置碰撞信息  
               info = "检测到物体: " + target.name + "坐标: " + target.transform.position;  
                }  
                else  
                {  
               // 如果二次发射的射线没有与内层物体碰撞  
               // 显示外层物体的网格  
               wrapper.GetComponent<MeshRenderer>().enabled = true;  
               // 设置碰撞信息  
               info = "检测到物体: " + wrapper.name + "坐标: " + wrapper.transform.position;  
               }  
            }  
        }  
    }  

  

发射射线

原文:https://www.cnblogs.com/clhxxlcj/p/10916781.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!