Unity发射射线

来源:互联网 发布:买mac还是ipad 编辑:程序博客网 时间:2024/05/16 18:20
void Update () {
       

        ShootRayA();

        ShootRayB();

}


private void ShootRayA()

{

        //实例化射线,参数1 开始位置, 参数2 结束位置
        Ray ray = new Ray(Vector3.zero, transform.position);

        RaycastHit hit;

        //发射一个长度为10的射线,如果没有碰撞到物体,则射线不显示,碰撞到目标则显示出一条直线

        if (Physics.Raycast(ray, out hit, 10))

        {

             print("击中目标");

             //射线的起点和终点
             Debug.DrawLine(ray.origin, hit.point);
             //print("起点   " + ray.origin + "      终点   " + ray.GetPoint(10));

        }

}


private void ShootRayB()

{

       //实例射线, Input.mousePosition为屏幕坐标
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit222;

        if (Physics.Raycast(ray222, out hit)) 

        {

              print("击中目标");
        }

}




//向射线方向发射一条长为10的射线,该方法返回true说明射线射到某物体,返回false说明射线没有射到任何物体

//Physics.Raycast(ray, out hit, 10)

 //向射线方向发射一条射线,无限长

//Physics.Raycast(ray, out hit)   


//该方法来创建一条由摄像机向鼠标当前位置发射的射线,然后使用Physics.Raycast()判断这条射线是否与某游戏对象相交,如果该方法返回true则表示相交,返回false则表示未相交

 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);































0 0
原创粉丝点击