Unity 射线

作者: U3D界金城武 | 来源:发表于2017-02-27 17:47 被阅读114次

    1,摄像机射线:

     Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                Debug.DrawLine(ray.origin, hit.point);  //显示出射线
                //Debug.DrawLine(transform.position, hit.point, Color.red);
                if (hit.collider.gameObject.name == "dogpoint") 
                {
                    play.dog1();  
                    hit.collider.gameObject.SetActive(false); //碰到的物体关闭
                 }
             }
    

    2, 物体发射射线:

    //通过标签指定
    //ray = new Ray(GameObject.FindGameObjectWithTag("Player").transform.position, GameObject.FindGameObjectWithTag("Player").transform.forward);
    //通过cam 坐标
    //ray = new Ray(game.position, game.forward);
    
     Vector3 fwd = transform.TransformDirection(Vector3.forward);
            RaycastHit hit;
            if (Physics.Raycast(transform.position,fwd,out hit))
            {
                Debug.DrawLine(ray.origin, hit.point);  //显示出射线
               //Debug.DrawLine(transform.position, hit.point, Color.red);
                if (hit.collider.gameObject.name == "dogpoint") 
                {
                    play.dog1();  
                    hit.collider.gameObject.SetActive(false); //碰到的物体关闭
                 }
             }
    

    3, 点击发出射线:

    if (Input.GetMouseButtonDown(0))
            {    //首先判断是否点击了鼠标左键
    
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);    //定义一条射线,这条射线从摄像机屏幕射向鼠标所在位置
                RaycastHit hit;    //声明一个碰撞的点(暂且理解为碰撞的交点)
                if (Physics.Raycast(ray, out hit))    //如果真的发生了碰撞,ray这条射线在hit点与别的物体碰撞了
                {
                    if (hit.collider.gameObject.name == "Qingting")    //如果碰撞的点所在的物体的名字是“StartButton”(collider就是检测碰撞所需的碰撞器)
                    {
                        print("蜻蜓");
                        play = ZT.s1;
                        }
                    }
                }
            }
    

    相关文章

      网友评论

        本文标题:Unity 射线

        本文链接:https://www.haomeiwen.com/subject/azazwttx.html