Unity发射射线

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);































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值