当前位置: 首页 > news >正文

Unity 2d UI 实时跟随场景3d物体

2d UI 实时跟随场景3d物体位置,显示 3d 物体头顶信息,看起来像是场景中的3dUI,实质是2d UI

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;
/// <summary>
/// 2d UI 实时跟随场景3d物体位置,显示 3d 物体头顶信息,看起来像是场景中的3dUI,实质是2d UI
/// </summary>
public class UIFollow3DGameObject : MonoBehaviour
{public Vector3 targetPos;private Camera mainCamera;private CanvasGroup canvas;bool _isInCamera = true; //是否在摄像机视野范围内void Awake(){mainCamera = Camera.main;canvas = GetComponent<CanvasGroup>();if (canvas == null){canvas = gameObject.AddComponent<CanvasGroup>();}_isInCamera = IsInCamera(mainCamera,targetPos);}/// <summary>/// 判断是否在摄像机视野范围内/// </summary>/// <returns></returns>bool IsInCamera(Camera camera,Vector3 pos){//转化为视角坐标Vector3 viewPos = camera.WorldToViewportPoint(pos);// z<0代表在相机背后if (viewPos.z < 0) return false;//太远了!看不到了!if (viewPos.z > camera.farClipPlane)return false;// x,y取值在 0~1之外时代表在视角范围外;if (viewPos.x < 0 || viewPos.y < 0 || viewPos.x > 1 || viewPos.y > 1) return false;return true;}void LateUpdate(){if (IsInCamera(mainCamera, targetPos) != _isInCamera){Debug.Log("改变是否在视野范围内");_isInCamera = IsInCamera(mainCamera, targetPos);MaskableGraphic[] childs = GetComponentsInChildren<MaskableGraphic>();foreach (var item in childs){item.enabled = _isInCamera;}if (_isInCamera == false) return;}if (targetPos != null && mainCamera != null){ResetPos();if (Time.frameCount % 5 == 0){ResetAlpha();}}}void ResetPos(){transform.position = mainCamera.WorldToScreenPoint(targetPos);}void ResetAlpha(){if (transform.position.z > 0f && canvas.alpha < 0.1f){canvas.alpha = 1f;}else if (transform.position.z < 0f && canvas.alpha > 0.9f){canvas.alpha = 0f;}}}

相关文章:

Unity 2d UI 实时跟随场景3d物体

2d UI 实时跟随场景3d物体位置&#xff0c;显示 3d 物体头顶信息&#xff0c;看起来像是场景中的3dUI&#xff0c;实质是2d UIusing System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; using UnityEngine.UI; /// <summary>…...

全方面熟悉Maven项目管理工具(二)坐标、pom.xml文件的解读!

1. 坐标&#xff08;核心概念&#xff09; 1.1 数学中的坐标 使用 x、y、z 三个向量作为空间的坐标系&#xff0c;可以在空间中唯一的定位到一个点 1.2 Maven 中的坐标 1.2.1 向量说明&#xff1a; 使用三个向量在 Maven的仓库 中唯一的定位到一个 jar 包 groupId&#xf…...

php常用设计模式之单例模式

设计模式是我们日常开发中最常用的编程模式之一&#xff0c;也是面试中最高频的考点之一。通过合理运用设计模式&#xff0c;可以使代码结构更加清晰、易于维护。通过这篇文章 我也讲一下设计模式中的单例模式&#xff0c;了解下它的原理和适用场景。 单例模式 单例模式&…...

一文搞懂Android主题和样式

1. 概念与作用 1.1 定义与组成 Android Theme是用于定义应用程序或其部分的视觉和界面风格的一种资源。主题在Android中扮演着重要的角色&#xff0c;它们允许开发者统一和自定义应用的外观和感觉。一个主题定义了一组属性集合&#xff0c;这些属性可以是颜色、字体、控件样式…...

360与重庆科技大学战略携手,为数字中国建设输送实战人才

近日&#xff0c;360数字安全集团与重庆科技大学正式签订了战略合作协议&#xff0c;双方将围绕创新人才培养、科研技术攻关、专业实验室共建、车联网安全以及社会服务等多个维度展开深度合作&#xff0c;共同打造数字安全人才培养新高地&#xff0c;为数字重庆的建设与发展注入…...

基于异常合成的图像异常检测方法

基于异常合成的图像异常检测方法 基于异常合成思路实现图像异常检测的方法&#xff0c;它们的核心思路是&#xff1a; 试图通过合成异常样本穷尽所有可能出现的异常类型&#xff0c;从而将无监督的异常检测&#xff08;one class classification&#xff09;建模为一个全监督…...

机器学习方向在算法优化上有哪些创新点?

以下是机器学习算法优化方面的一些创新点: 一、优化算法自身的改进 随机梯度下降(SGD)的变体 Adagrad 传统的随机梯度下降算法使用固定的学习率,而Adagrad根据每个参数的历史梯度信息自适应地调整学习率。对于稀疏数据,它可以为不同的参数分配不同的学习率,使得频繁出现…...

基于yolov8的道路交通事故检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOV8的道路交通事故检测系统是一种先进的智能交通监控解决方案&#xff0c;它利用YOLOV8这一前沿的目标检测算法&#xff0c;实现对交通事故的高效、实时检测。 该系统结合了自定义的道路交通事故数据集&#xff0c;对YOLOV8模型进行了针对性的训练与优化…...

HttpUtils 详解

一、详解 1.1 介绍 现如今的 Web 项目&#xff0c;由服务端向外发起网络请求的场景&#xff0c;基本上随处可见&#xff01; 传统情况下&#xff0c;在服务端代码里访问 http 服务时&#xff0c;一般会使用 JDK 的 HttpURLConnection 或者 Apache 的 HttpClient&#xff0c;不…...

云计算第四阶段: cloud二周目 07-08

cloud 07 一、k8s服务管理 创建服务 # 资源清单文件 [rootmaster ~]# kubectl create service clusterip websvc --tcp80:80 --dry-runclient -o yaml [rootmaster ~]# vim websvc.yaml --- kind: Service apiVersion: v1 metadata:name: websvc spec:type: ClusterIPselector…...

智能合约开发工具Remix

不久前&#xff0c;我在B站、视频号和 YouTube 都陆续发布了新的一套免费视频课程《智能合约开发工具Remix》&#xff0c;总共分为了 9 个小节的视频&#xff0c;以下分别是这 9 个小节在 B 站的视频链接&#xff0c;喜欢直接看视频的伙伴可以去 B 站观看&#xff1a; 概况文件…...

YYF桌面 1.2 | 个性化桌面体验,清爽美观。

YYF桌面是一款经过定制的安卓桌面启动器&#xff0c;此版本基于1.2版本进行了一系列个性化修改。主界面快捷图标进行了美化处理&#xff0c;并采用了清爽半透明的图标背景。取消了底部快捷键&#xff0c;并重新制作了“全部应用”按钮&#xff0c;保留了动态效果。修改了右上角…...

【人工智能/计算机工程/大数据】第五届人工智能与计算工程国际学术会议(ICAICE 2024,2024年11月8-10日)

The 5th International Conference on Artificial Intelligence and Computer Engineering 第五届人工智能与计算工程国际学术会议&#xff08;ICAICE 2024&#xff09; 会议官网&#xff1a;www.event-icaice.org The 5th International Conference on Artificial Intellige…...

uni-app录音功能

纯纯干货&#xff0c;cv即用 <template><!-- 录音页面 --><view class"page"><view class"tape_box"><view class"upload_box1"><view class"upload_top"><view class"upload_img_title…...

C语言【调试】(个人笔记版)

调试 前言一、Bug二、调试工具1.DeBug2.Release 三、调试快捷键1、断点 四、调试时查看程序的当前信息1、查看临时变量2、查看内存3、查看调用堆栈、汇编、寄存器 总结 前言 这篇文章大都是我的个人笔记&#xff1a; 调试在日常程序设计中是很重要的。调试说白了就是为了解决代…...

连锁收银系统

商淘云连锁管理系统助力连锁企业实现“人货账”全方位数字化管理&#xff0c;它依托连锁品牌进销存管理实现门店订货、线下收银、线上商城、会员营销等一体化管理。 门店订货补货支持连锁直营、加盟 不同门店不同进货价、不同门店不同商品、不同门店在线或者账期支付、门店PC或…...

5.2024.10.21

2024.10.21 学习和复习 学习QT的流程控制、函数、内联函数复习C语言printf练习 问题及解决方案 C学到函数之后有些吃力代码逻辑能力不大行&#xff0c;需要巩固一下C语言基础再挤多点时间去学习嵌入式写代码前先把大概思路写出来 碎碎念 最近作业比较多&#xff0c;有点静不下…...

前端Socket互动小游戏开发体验分享

随着实时网络通信技术的不断发展&#xff0c;基于WebSocket的前端互动小游戏成为了一种非常流行的选择。WebSocket允许客户端和服务器之间进行双向通信&#xff0c;为游戏互动带来了更快的响应时间和更流畅的体验。本文将通过一个简单的互动小游戏来探讨前端如何利用WebSocket技…...

react项目,通过自定义 separator 属性来修改日期选择器中间的分隔符:

1. 引入必要的依赖 确保你已经引入了 DatePicker 组件和 moment 库。 import React, { Component } from react; import { DatePicker } from antd; import moment from moment; const { RangePicker } DatePicker; const dateFormat "YYYY/MM/DD"; 2. 定义父组…...

双十一有啥好用的家居好物推荐?2024性价比高的超声波清洗机推荐

双十一今天晚上就可以越热开抢了&#xff0c;还不知道购买什么物品的小伙伴们赶紧来看看我这篇文章&#xff0c;在众多家居好物中&#xff0c;超声波清洗机以其高效、便捷的特点&#xff0c;成为了许多家庭的必备神器。2024年&#xff0c;市场上涌现出了不少性价比超高的产品&a…...

ai辅助开发:借助快马平台智能生成与交互式解析yolov8网络架构图

最近在做一个计算机视觉相关的项目&#xff0c;需要用到YOLOv8模型。作为一个视觉模型小白&#xff0c;最头疼的就是理解这个复杂的网络结构。好在发现了InsCode(快马)平台&#xff0c;它提供的AI辅助开发功能简直是我的救星。 自然语言输入 以前画网络结构图&#xff0c;要么自…...

5大核心模块构建学术排版系统:STIX Two字体全面应用指南

5大核心模块构建学术排版系统&#xff1a;STIX Two字体全面应用指南 【免费下载链接】stixfonts OpenType Unicode fonts for Scientific, Technical, and Mathematical texts 项目地址: https://gitcode.com/gh_mirrors/st/stixfonts 一、价值解析&#xff1a;为什么专…...

揭秘Zotero PDF Translate离线翻译方案:学术研究数据安全新范式

揭秘Zotero PDF Translate离线翻译方案&#xff1a;学术研究数据安全新范式 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.com/gh…...

Windows驱动存储深度管理:DriverStore Explorer全方位解决方案

Windows驱动存储深度管理&#xff1a;DriverStore Explorer全方位解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 一、驱动管理困境与突破路径 1.1 系统驱动管理的核心挑战 W…...

告别空谈!用Langchain4j的Function Calling,为你的Java AI助手加上“查询订单”的实战能力

实战Langchain4j函数调用&#xff1a;为Java AI助手赋予订单查询能力 想象一下&#xff0c;当你的医疗预约AI助手不仅能回答"如何预防感冒"&#xff0c;还能在你说"查看我下周的挂号记录"时&#xff0c;直接调取数据库返回具体预约信息——这种"能说…...

Qwen3.5-9B-AWQ-4bit效果展示:多行表格截图→结构化JSON输出+中文摘要双模式

Qwen3.5-9B-AWQ-4bit效果展示&#xff1a;多行表格截图→结构化JSON输出中文摘要双模式 1. 模型能力惊艳展示 千问3.5-9B-AWQ-4bit作为一款支持图像理解的多模态模型&#xff0c;在处理表格类图片时展现出令人印象深刻的能力。它不仅能够准确识别表格内容&#xff0c;还能提供…...

React自定义Hook开发:解锁逻辑复用的终极指南

React自定义Hook开发&#xff1a;解锁逻辑复用的终极指南 【免费下载链接】react-fundamentals Material for my React Fundamentals Workshop 项目地址: https://gitcode.com/gh_mirrors/re/react-fundamentals React自定义Hook是提升组件逻辑复用能力的核心技术&#…...

Cisco Catalyst 8000 IOS XE 17.18.2 ED - 思科 Catalyst 8000 边缘平台系列 IOS XE 系统软件

Cisco Catalyst 8000 Series Edge Platforms, IOS XE Release 17.18.2 ED 思科 Catalyst 8000 边缘平台系列 IOS XE 系统软件 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-8000/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff…...

PDF-Extract-Kit-1.0效果展示:高精度表格识别与公式还原真实案例集

PDF-Extract-Kit-1.0效果展示&#xff1a;高精度表格识别与公式还原真实案例集 想象一下&#xff0c;你手头有一份满是复杂表格和数学公式的PDF学术论文&#xff0c;或者一份财务报告。你需要把里面的数据提取出来&#xff0c;做成Excel表格进行分析&#xff0c;或者把那些复杂…...

Phi-4-mini-reasoning Chainlit用户体验优化:流式响应+打字机动画实现

Phi-4-mini-reasoning Chainlit用户体验优化&#xff1a;流式响应打字机动画实现 1. 项目背景与目标 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员&#xff0c;它支持128K令牌的…...