栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

unity受苦记(1)----射线检测目标物体

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unity受苦记(1)----射线检测目标物体

(unity小白最近爆肝毕业设计受苦记,欢迎指导(好耶!))

系统里面需要实现一个检测目标物体的功能。百度和unity官文找了半天,比较方便的可以用ray来实现。

代码如下

    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//定义主摄像机射线(射向鼠标位置)

        RaycastHit HitPointInfo;//在HitPointInfo中保存被碰撞物体的信息

        bool isCollider = Physics.Raycast(ray,out HitPointInfo); //射线是否碰撞到物体

        //ShowTag(isCollider, HitPointInfo);//显示鼠标所指物体的tag

        //IfHitGround(isCollider, HitPointInfo);//判断鼠标是否指向地面

    }

RaycastHit结构体在涉及到射线的解决方法里很重要,关于射线所碰撞到的碰撞体(collider)的很多信息都存储在里面,比如射线所碰撞到的碰撞体(collider)、和碰撞体碰撞的点的坐标(point)和transform等等...详情UnityEngine.RaycastHit - Unity 脚本 API

当射线碰撞到碰撞体的时候就可以用RaycastHit找到被碰撞到的碰撞体然后处理碰撞体了,这里暂时测试一下输出被碰撞到的碰撞体的tag

    void ShowTag(bool a,RaycastHit b)
    {
        if (a != null)
        {
            Debug.Log(b.collider.tag);
        }//显示鼠标所指物体tag
    }//显示鼠标所指物体tag方法

在update里面调用一下这个方法就可以实现了(直接写进去也不是不行主要是想好看一点免得到时候做功能注释得乱七八糟的)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号