using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class UImovePlusSample : MonoBehaviour
{/// <summary>/// 3D物体/// </summary>public Transform rectBloodPos;public bool actived = false;public int btnpos;private float distance;public bool started = false;public void Start(){//开始时创建对应2d图标。rectBloodPos.GetComponent<Button>().onClick.AddListener(SetActiveBool);rectBloodPos.transform.GetChild(0).GetComponent<Button>().onClick.AddListener(SetInActiveBool);if (gameObject.tag == "Replay"){Destroy(rectBloodPos.transform.GetChild(0).gameObject);}//---distance = Vector3.Distance(rectBloodPos.transform.position, Camera.main.transform.position);//---Text[] relist = rectBloodPos.GetComponentsInChildren<Text>(true);for (int i = 0; i < relist.Length; i++){if(relist[i].transform.parent.name=="Image")relist[i].text = gameObject.name;} }public bool IsInView(Vector3 worldPos){Transform camTransform = Camera.main.transform;Vector2 viewPos = Camera.main.WorldToViewportPoint(worldPos);Vector3 dir = (worldPos - camTransform.position).normalized;float dot = Vector3.Dot(camTransform.forward, dir);//判断物体是否在相机前面if (dot > 0 && viewPos.x >= 0 && viewPos.x <= 1 && viewPos.y >= 0 && viewPos.y <= 1)return true;elsereturn false;}void Update(){Vector2 vec2 = Camera.main.WorldToScreenPoint(this.gameObject.transform.position);if (IsInView(transform.position)) {if(!rectBloodPos.gameObject.activeInHierarchy)rectBloodPos.gameObject.SetActive (true);//rectBloodPos.anchoredPosition = new Vector2(vec2.x - Screen.width / 2 + 0, vec2.y - Screen.height / 2 + 0);float newDistance = distance / Vector3.Distance(rectBloodPos.position, Camera.main.transform.position);rectBloodPos.GetComponent<Image>().rectTransform.position = vec2;//位置 //if(rectBloodPos.GetComponent<Image>().rectTransform.localScale.x<3)
//            rectBloodPos.GetComponent<Image>().rectTransform.localScale = Vector3.one * newDistance*1.5f;if (started){if ((Vector3.Distance(transform.position, Camera.main.transform.position) < 3.5)){actived = true;}else{actived = false;}}//if( rectBloodPos.childCount>0)rectBloodPos.GetChild(0).gameObject.SetActive(actived);}elserectBloodPos.gameObject.SetActive (false);}public void SetActiveBool(){actived = true;}public void SetInActiveBool(){started = false;actived = false;}private void OnMouseDown(){SetActiveBool();}}

【常用】2DUI跟随3D物体移动(待修复)相关推荐

  1. unity UI 跟随3D物体移动

    using System.Collections; using System.Collections.Generic; using UnityEngine;public class UIFollow3 ...

  2. unity 3d物体显示和2dUI显示相结合

    1 利用摄像机深度 2 利用rendertexture 将3d物体渲染到texture上面

  3. 激光雷达:最新趋势之基于RangeView的3D物体检测算法

    作者丨巫婆塔里的工程师@知乎 来源丨https://zhuanlan.zhihu.com/p/406674156 编辑丨3D视觉工坊 之前在LiDAR点云物体检测算法的综述中提到了四个发展阶段.在最开 ...

  4. 学习笔记——深蓝学院点云系列公开课05:3D物体检测的发展与未来

    3D物体检测的发展与未来 今天在深蓝学院的网站上找到了以后,就迫不及待的看了一波 还是很棒的 有一些启发 直接把博客当成笔记了 网站链接:https://www.shenlanxueyuan.com/ ...

  5. ViveInputUtility-手柄拾取3D物体(7)

    本章主要介绍通过VIU,实现手柄拾取3d物体以及拾取事件触发. 1.前期准备 新建场景06-3DGrab,删除默认相机,新建原点空节点Player,将需要的模块拖入Player节点内,本章还是沿用第二 ...

  6. [Unity]3D物体透明化方法透明材质球

    Default-Skybox,Shader:Skybox/Procedural 使用透明材质 1.使用自带的天空盒材质 新建3D物体,自带是初始材质 将其替换成如上图所示的Default-Skybox ...

  7. SteamVR 2.x 手柄射线与3D物体交互(9)

    UI模块在前面已经讲完了,从本章开始,会着重介绍手柄与3d游戏物体之间的交互,我们平时项目开发,最常用的就是手柄射线点击物体.手柄触碰以及手柄拾取物体,先来聊聊射线点击物体. 沿用的思想我们之前有说过 ...

  8. CSS实现鼠标跟随 3D 旋转效果,让交互活起来

    一淘模板(56admin.com)给大家介绍一下如何使用CSS实现有意思的鼠标跟随 3D 旋转效果,让交互更加生动,希望对大家有所帮助! 今天,群友问了这样一个问题,如下所示的鼠标跟随交互效果,如何实 ...

  9. 英伟达这篇CVPR 2022 Oral火了!2D图像秒变逼真3D物体!虚拟爵士乐队来了!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 你见过乐器自己演奏么?看看这个: 图1. "活灵活现"的虚拟乐器还是在 NVIDIA 服 ...

最新文章

  1. Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
  2. 2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)
  3. 计算机专业英语书本笔记,英语语言学概论笔记《全集》.doc
  4. Caffe RPN:把RPN网络layer添加到caffe基础结构中
  5. Presto入门介绍
  6. MySQL 正则表达式查询
  7. 解析Tensorflow官方PTB模型的demo
  8. 怎样搭建轻量级架构-代码组织篇
  9. shell交互式输入
  10. .net core 部署在Linux系统上运行的环境搭建
  11. 如何准确的判断一个数据的类型
  12. 再看结构体对齐与小端联合问题
  13. 上传文件(ajax结合form表单)
  14. PowerDesigner16工具学习笔记-建立CDM
  15. 如何从尚硅谷下载免费的前端开发视频资源
  16. UNITY单击和双击实现
  17. Linux 编译debug内核
  18. RapidMiner 数据转换
  19. macos 废纸篓强制删除文件文件夹
  20. github里的默认域_研究人员如何使用Shhgit搜索GitHub中的敏感数据

热门文章

  1. 妙笔生花:一个易用、高效的文本生成开源库
  2. 从动力学角度看优化算法:为什么SimSiam不退化?
  3. 超细粒度分析XLNet中神奇的Attention Mask
  4. 当知识图谱遇上文本摘要:保留抽象式文本摘要的事实性知识
  5. CMU Facebook论文解读 | 非局部神经网络(附代码实现)
  6. Java 图形用户界面(GUI)java.awt包概述
  7. yoyo思维题(困难) 组合数学
  8. 程序员35岁之后的出路_我35岁,被裁员,开始给程序员规划人生
  9. 计算机丢失quartz.dll什么意思,win7系统中出现缺少quartz.dll文件的修复方法
  10. windbg 查看结构体_用WinDbg进行调试