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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页