Unity3D 射线、鼠标点击消除 Ray

鼠标点击选中物体

鼠标是摄像机二维平面上的一个点,通过射线可以延伸至三维空间选择物体。

先给摄像机添加射线组件:Effects -> Line Renderer
在这里插入图片描述
在这里插入图片描述
设置射线的初始位置(0)和结束位置(1),结束位置正常是有代码设置
设置射线宽度 Width
在这里插入图片描述
添加脚本
在这里插入图片描述
编写脚本

public class RayTest : MonoBehaviour
{ 
    LineRenderer lineRenderer;
    // Start is called before the first frame update
    void Start()
    {
        //获取射线组件
        lineRenderer = GetComponent<LineRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
        //判断用户是否按下鼠标左键
        if (Input.GetMouseButton(0))
        {
            //创建射线对象,从屏幕发出的射线,参数:鼠标在屏幕的位置
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            //判断射线是否产生碰撞,最远距离是100
            if(Physics.Raycast(ray,out hit, 100f))
            {
                //开启射线的显示
                lineRenderer.enabled = true;
                //设置射线的结束位置,参数1就是前面提到的结束位置
                lineRenderer.SetPosition(1, hit.point);
				//消除射线碰撞的物体
				//Destory(hit.collider.gameObject);
            }
            else
            {
                //射线没有碰撞物体,就关闭射线的显示
                lineRenderer.enabled = false;
            }
        }
    }
}

消除射线碰撞的物体

Destory(hit.collider.gameObject);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值