找回密码
 立即注册
查看: 275|回复: 0

Unity Ray射线跟随鼠标

[复制链接]
发表于 2022-12-26 21:21 | 显示全部楼层 |阅读模式
一、射线跟随鼠标点击位置


1.gif

Vector3 hitpoint = Vector3.zero;void Update()    {        ShowClickLine();    }void ShowClickLine() {        // 按下鼠标左键发射射线        if (Input.GetMouseButtonDown(0))        {            // 使用主摄像机创建一根射线,射线的方向是鼠标点击的位置(从摄像头位置到鼠标点击位置的一条射线)            Vector3 screenPoint = Input.mousePosition;            ray = Camera.main.ScreenPointToRay(screenPoint);            // 使用物理类检查射线的碰撞,如果点击物体存在            if (Physics.Raycast(ray, out hit))            {                hitpoint = hit.point;            }        }        Debug.DrawRay(transform.position, hitpoint - transform.position, Color.red);    }二、射线实时跟随鼠标位置


2.gif

void Update()    {        ShowLine();    }void ShowLine()    {        //返回一条射线从摄像机通过一个屏幕点        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);        RaycastHit hitInfo = new RaycastHit();        //(射线的起点和方向,hitonfo将包含碰到碰撞器的更多信息,射线的长度)有碰撞时,返回真        if (Physics.Raycast(ray, out hitInfo, 100))        {            //显示检测到的碰撞物体的世界坐标            print(hitInfo.point);            Debug.DrawLine(transform.position, hitInfo.point, Color.red);        }    }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 00:19 , Processed in 0.091040 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表