标签代码

using System;
using UnityEngine;[Serializable]
public class Item
{public Vector3 direction;public string content;public float length;public Transform transform;public bool show;//是否显示//public GameObject lable;//显示的标签
}

镜头显示标签代码

using System.Collections.Generic;
using UnityEngine;
using FrameWork;
using UnityEngine.Rendering;/// <summary>
/// 屏幕标签
/// </summary>
public class ScreenDrowLine : MonoBehaviour
{[SerializeField] Material mat;[SerializeField] List<GameObject> Texts = new List<GameObject>();public List<Item> items = new List<Item>();[SerializeField] Transform lablesTra;private void Start(){GameEvent.typeEventSystem.Register<InstantiateLable>(InstantiateLable);}#region URP渲染模式需另加代码private void OnEnable(){RenderPipelineManager.endCameraRendering += OnEndCameraRendering;}private void OnDisable(){RenderPipelineManager.endCameraRendering -= OnEndCameraRendering;}private void OnEndCameraRendering(ScriptableRenderContext arg1, Camera arg2){OnPostRender();}#endregionvoid OnPostRender(){GL.Color(Color.red);GL.PushMatrix();GL.LoadOrtho();mat.SetPass(0);for (int i = 0; i < items.Count; i++){//if (items[i].show && items[i].transform.gameObject.activeSelf)//{//    Texts[i].gameObject.SetActive(true);GL.Begin(GL.LINES);var pos = Camera.main.WorldToScreenPoint(items[i].transform.position);GL.Vertex(new Vector2(pos.x / Screen.width, pos.y / Screen.height));pos = Camera.main.WorldToScreenPoint(items[i].transform.position + items[i].direction * items[i].length);if (pos.x > 1550 || pos.x < 45 || pos.y > 870 || pos.y < 110){items[i].length = Mathf.Lerp(items[i].length, 0, Time.deltaTime * 5);pos = Camera.main.WorldToScreenPoint(items[i].transform.position + items[i].direction * items[i].length);}else{var len = Mathf.Lerp(items[i].length, 2, Time.deltaTime * 5);var temp = Camera.main.WorldToScreenPoint(items[i].transform.position + items[i].direction * len);if (temp.x < 1540 && temp.x > 55 && temp.y < 860 && temp.y > 120){pos = temp;items[i].length = len;}}GL.Vertex(new Vector2(pos.x / Screen.width, pos.y / Screen.height));GL.End();Texts[i].transform.position = pos;//}//else//{//    Texts[i].gameObject.SetActive(false);//}}GL.PopMatrix();}/// <summary>/// 实例标签/// </summary>public void InstantiateLable(InstantiateLable instantiateLable){LableItem ll = Instantiate(Resources.Load<LableItem>("UI/Prefab/LableItem"), lablesTra);ll.SetText($"{instantiateLable.readyInfo.post}-{instantiateLable.readyInfo.name}");Texts.Add(ll.gameObject);Item item = new Item();item.direction = new Vector3(0, 0, 0);item.length = 2;item.transform = instantiateLable.pepleTra;item.show = true;items.Add(item);}
}

属性窗口

unity 镜头标签相关推荐

  1. Unity镜头跟踪的四种方法

    Unity镜头跟踪的四种方法 新手代码 固定相机跟随,这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.C ...

  2. unity镜头边缘羽化_【后期修图】如何利用Ps中的自适应广角滤波器校正镜头失真?...

    当用广角镜头拍摄对象时,透视问题通常以线条的形式出现,这应该是直的,但看起来是弯曲的和扭曲的.这通常被称为桶形失真,其主要发生在广角镜头中,因为图像的放大率越远,主体离镜头的光轴越远.简单来说,这意味 ...

  3. unity镜头边缘羽化_【JTRP】屏幕空间深度边缘光 Screen Space Depth Rimlight

    氵一篇最近群友聊到的新边缘光,使用深度计算,相对于传统边缘光可能更适合硬表面. https://github.com/Jason-Ma-233/JasonMaToonRenderPipelinegit ...

  4. Unity Tag标签

    物体设置tag标签,也可以理解为标记物体,用以区分物体,例如场景中的默认相机的标签默认为MainCamera,在脚本中我们可以通过Camera.main来获取场景中标签为MainCamera的相机. ...

  5. Unity 镜头拉近拉远 和旋转视角

    自己使用的是 Unity2018和VS2019版. 向主相机添加FollowPlayer类. 下面呈现代码 这里有小Bug, 拉近拉远和旋转视角无法同时使用,后续会进行更改完善 public clas ...

  6. Unity 镜头烟雾特效的笔记贴

    效果:烟雾缭绕 实现思路的探索: 最直接的思路就是用粒子模拟,粒子特效特效跟随摄像机,然后布拉布拉的往外喷.效果还可以接受,但是用默认shader实现的粒子特效,会跟墙体地面等场景物品产生明显的接缝. ...

  7. 【Unity入门计划】playground项目:2D飞船移动小游戏

    目录 跟学的Unity教程 我的Unity版本 1 导入playground项目资源 2 创建新场景 3 创建玩家飞船 3.1 调整大小位置 3.2 调整Game视图的背景 3.3 Inspector ...

  8. AOP之PostSharp7-解决IOC 不能直接new问题,简化IOC开发和IOC对象LazyLoad

    经过几节的postsharp基础和每节的一个应用实例,已经基本PostSharp应用的能力,PostSharp主要是简化我们的开发,让编译器时候给我注入重复疲劳代码. 在今天我们的demo是,关于io ...

  9. Unity3D 自动打包整个项目(以AssetBundle实现)

    需求: 在移动开发中,手动控制资源的加载.释放和热更新,是很有必要的. 而Unity通过AssetBundle可以实现该需求,但是如果项目资源多起来的话一个个手动打包成AssetBundle则很麻烦. ...

最新文章

  1. 条件注释判断浏览器!--[if !IE]!--[if IE]!--[if lt IE 6]!--[if gte IE 6]
  2. python爬虫提取a标签_Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
  3. .NET6之MiniAPI(十三):健康检查
  4. 带权中位数-算法导论第三版第九章思考题9-2
  5. QWT错误static struct QMetaObject const QwtPlot
  6. 阿里云爬虫风险管理产品商业化,为云端流量保驾护航 1
  7. springboot整合JDBC+Druid
  8. AndroidManifest.xml 中application 的 android:name 属性作用
  9. java 8下载_java8下载-java8 64位官方版下载最新免费版-乡巴佬
  10. 【学习笔记】matlab进行数字信号处理(三)数字滤波技术
  11. Java打印输出print和prinntln
  12. python数据生成pdf_利用Python的Django框架生成PDF文件的教程
  13. 国内好的破解软件下载站
  14. 基于CM6800的ATX电源维修
  15. 技术岗的职业规划_技术人员职业规划精选范文
  16. Mac运行node.js连接oracle数据库报DPI-1047: Cannot locate a 64-bit Oracle Client library: “dlopen(libclntsh.dy
  17. 【数学基础】简单易懂的张量求导和计算图讲解
  18. PMP考试科目有什么?
  19. 【密码岛OJ】1753 马走日题解
  20. 闪耀DTCC | 合作伙伴北京中亦安图倾情加盟 DTCC2018!

热门文章

  1. 公众号h5页面分享并监测分享事件
  2. 关于uni-app手机nfc开启、读取、写入功能
  3. 车企们的第一辆车是什么样的
  4. LocalSend - 无需联网,开源跨平台的局域网文件互传工具(AirDrop 替代品)
  5. 【渝粤教育】国家开放大学2018年春季 0701-21T公共政策学 参考试题
  6. Proe5.0滚轮不能使用的设置
  7. Invalid bound statement (not found): com.xxx.dao.xxxDao.selectByxx错误
  8. linux桌面版本安装MSDM,_如何安装linux操作系统?
  9. 山月大佬做了个极客时间返现平台及技术栈介绍
  10. 摄影初学者挑选相机的常见问题[转]