Unity实现UI跟随物体

2023-11-03

    在项目有时候需要一个光标来提示物体的位置,并且可点击。我这里分享一个自己在开发过程中的小方法。

    首先的思路就是创建一个ui组件作为光标,不管是image,还是button,按自己实际需求而定,然后可以设置中心点pivot。接下来就是让这个光标实时跟随物体,那么就需要将物体的世界坐标转换成屏幕坐标,将这个坐标赋值给光标。如下代码:

 transform.position = Camera.main.WorldToScreenPoint(target.position);

这样光标就可以跟随物体了,但是这里有个小问题,当我们的视角左右旋转180度后,虽然看不到物体,但是光标依然可以看得见,这个时候就需要判断物体是否在摄像机的前面,如果在相机前面光标显示,如果在相机后面光标不显示。为了判断物体是否在相机的前面,我这里用了数学的点积方法,只需要计算当前物体的transform.forward向量与(otherObj.transform.position – transform.position)的点积即可,transform.forward 是玩家正面朝向,方向otherObj.transform.position – transform.position 是玩家 到 物体的方向。当点积返回的值大于0时则为正方形,反之为反方向。代码如下:

//计算玩家到目标的方向
        Vector3 dir = target.position - Camera.main.transform.position;
        //使用点积判断前后方,返回正时在前方
        if (Vector3.Dot(Camera.main.transform.forward, dir) > 0)
        {
            transform.localScale = Vector3.one;
        }
        else
        {
            transform.localScale = Vector3.zero;
        }


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity实现UI跟随物体 的相关文章

  • Ubuntn搭建Git +Repo代码管理服务器

    准备 三台电脑A 192 168 1 1 B 192 168 1 2 C 192 168 1 3 其中A作服务器 B作为服务器管理员 C就作为客户端 实际操作中注意替换ip等相关信息 搭建Git服务器 A 参考https blog csdn

随机推荐

  • 计算机老丢失运行库,计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的修复方案

    在我们打开某软件 或者安装某个游戏的时候 经常会遇到这个问题 无法启动此程序 因为计算机中丢失api ms win crt runtime l1 1 0 dll 尝试重新安装该程序以解决此问题 部分用户重新安装此程序之后 还是会提示 计算机
  • 2023年如何选购一部4000元价位的笔记本电脑(附跳坑说明)

    2023年如何选购一部4000元价位的笔记本电脑 附带坑的说明 本文是一个快速指南 不包含选购中涉及的所有知识点 尤其是大量的具体硬件参数 内容主要关注在如何快速抓住自己真正的需求 快速筛选掉不匹配的型号 从而做出适合的选择 背景条件限定
  • strerror函数

    strerror函数 在linux编程下 经常看到很多的函数调用的返回值都会有一句话 错误代码存放在errno中 比如 open write creat 函数就会把错误原因放入errno中 最开始我也是很纳闷的 这个是什么啊 具体怎么看这个
  • Lightroom Classic 安装教程 2023最新版本

    Lightroom Classic是一个用于处理和编辑数字照片的软件 由Adobe开发和发布 它包括图片管理 RAW图像处理 编辑和输出功能 并提供大量的调整工具和预设 让用户可以轻松地对照片进行色彩校正 曝光调整 修剪和旋转 去除瑕疵和噪
  • 创建一个没有文件名的任意后缀的文件

    今天在实习的时候用WebStorm配置Eslint的时候遇到这个问题 就是需要一个 eslintrc的文件 但是我直接新建一个文档改后缀名不能使用 于是就想到了老师上课的时候让我们自己新建一个 gitignore包 办法如下 很小白的操作
  • idea git远程修改大小写字母,本地未修改,git pull faild warning redirecting to

    当他人远程修改了git分支的某字母 大小写修改 本地拉取失败或出现两个分支 只是某字母大小写不同 时 可以打开该项目 找到 git文件夹 如果没有则勾选隐藏的项目 git refs remotes origin 找到对应分支 进入文件修改名
  • QT QTableWidget 遍历导出时的一个空指针问题

    文章目录 如何遍历导出QTableWidget 空指针导致的程序崩溃 原因分析 解决方法 如何遍历导出QTableWidget 正常情况下在QT开发时 我们可以使用以下代码导出QTableWidget中的数据到一个文本文件 tbl gnss
  • 数学建模模型大全_数学建模——预测模型

    拟合 拟合是最基本的预测方法 matlab中提供了polyfit fit函数 用法示例 x p 注 拟合阶数过高意义不大 易出现过拟合现象 一般 3阶 MATLAB中还提供了 拟合工具箱 在命令行窗口输入 cftool 即可调用 时间序列
  • 【C语言初阶】 选择结构(分支语句)

    博客主页 小王又困了 系列专栏 C语言 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 1 选择结构和条件判断 2 用if语句实现选择结构 2 1在C语言中选择结构主要是用if语句实现的 为了让大家进一步了解if语句的应用 我们举个
  • JSR303校验

    1 什么是JSR303校验 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规范的正式请求 任何人都可以提交J
  • CTFShow web入门刷题记录-命令执行

    CTFShow web入门刷题记录 命令执行 web29 考点 preg match对于 flag 的字符的过滤 使用f 代替flag完成绕过 匹配任何字符串 文本 包括空字符串 代表任意字符 0个或多个 ls file 匹配任何一个字符
  • 西瓜书--第五章.神经网络

    个性签名 整个建筑最重要的是地基 地基不稳 地动山摇 而学技术更要扎稳基础 关注我 带你稳扎每一板块邻域的基础 博客主页 七归的博客 创作不易 走过路过别忘了三连击了哟 关注作者 不仅幸运爆棚 未来更可期 Triple attack 三连击
  • Medical Image Segmentation Review:The Success of U-Net

    目录 医学图像分割综述 UNet的成功 1 摘要与介绍 2 分类 2 1 2D Unet 2 2 3D UNet 3 UNet扩展 3 1对于跳跃连接的增强与改进 3 1 1 增加跳跃连接数量 3 1 2 对跳跃连接过程中的特征进行处理 3
  • React笔记之组件-复杂state的使用(4)

    前置简介 上一节 https juejin im post 6867454175781847047 我们简单说了state的使用 本节说明一下复杂的state使用方式 如果state里不止有 n 怎么办 类组件中 state 中有多个值 d
  • 翰高数据库安装连接

    1 背景 最近公司在做一个军用机场跑道异物检测设备 但是由于各国之间的关系紧张 军放要求我们软件做一个国产数据库的适配 经查阅才知道这个翰高数据库用的内核为postgresql 然后再这个基础上做了一定修改与优化 废话不多说 安排 2 数据
  • jenkins 部署 和构建java项目

    1 准备环境依赖 jdk yum install jdk 8u261 linux x64 rpm 2 下载jenkins yum install https mirrors tuna tsinghua edu cn jenkins redh
  • 什么是 DevOps?看这一篇就够了!

    文章目录 一 前因 二 记忆 三 他们说 3 1 Atlassian 回答 什么是 DevOps 3 2 微软回答 什么是 DevOps 3 3 AWS 回答 什么是 DevOps 四 DevOps 文化 4 1 什么是文化 4 2 什么是
  • 特征重要性计算方法及神经网络的特征重要性

    这是我第63篇文章 这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法 1 几种常用的特征重要性计算方法 1 1 树模型特征重要性 像xgboost lightgbm等树模型都有自己计算特征重要性的方法 其特征重要性
  • 【面试题】fiddler怎么抓包,目的是什么?

    如何抓包 fiddler可以抓web app请求 web端主要是配置好设置然后信任证书 app需要在web中配置好端口 使用手机访问给定的证书地址 下载证书并安装到手机上 然后在手机的无线网络里设置下代理 目的 1 不知道接口的情况下 答
  • Unity实现UI跟随物体

    在项目有时候需要一个光标来提示物体的位置 并且可点击 我这里分享一个自己在开发过程中的小方法 首先的思路就是创建一个ui组件作为光标 不管是image 还是button 按自己实际需求而定 然后可以设置中心点pivot 接下来就是让这个光标