Unity 编辑器篇|(十一)Gizmos (全面总结 | 建议收藏)

目录

  • 1. 前言
  • 2 参数总览
  • 3 Gizmos绘制
    • 3.1 立方体:DrawCube
    • 3.2 视锥:DrawFrustum
    • 3.3 贴图:DrawGUITexture
    • 3.4 图标:DrawIcon
    • 3.5 线段:DrawLine
    • 3.6 网格:DrawMesh
    • 3.7 射线:DrawRay
    • 3.8 球体:DrawSphere
    • 3.9 Cube网格线:DrawWireCube
    • 3.10 Mesh网格线:DrawWireMesh
    • 3.11 Sphere网格线:DrawWireSphere

1. 前言

  • Gizmos能且只能在MonoBehaviour相关子类中,使用特定的函数调用,其中:
  • OnDrawGizmos() 在每帧调佣。所有在OnDrawGizmos中的渲染都是可见的。
  • OnDrawGizmosSelected() 仅在脚本附加的物体被选择时调用。

2 参数总览

静态函数描述
CalculateLOD确定场景视图中具有指定半径的指定位置处的小控件的适当细节级别。
DrawCube在中心绘制一个带有尺寸的实心框。
DrawFrustum使用当前设置的 Gizmos.matrix 绘制相机平截头体的位置和旋转。
DrawGUITexture在该场景中绘制一个纹理。
DrawIcon在 Scene 视图中的某个位置绘制一个图标。
DrawLine绘制一条从 from 开始到 to 的线。
DrawLineList在点对之间绘制多条线。
DrawLineStrip在提供的跨度中的每个点之间绘制一条线。
DrawMesh绘制一个网格。
DrawRay绘制一条从 from 开始到 from + direction 的射线。
DrawSphere使用 center 和 radius 绘制一个实心球体。
DrawWireCube使用 center 和 size 绘制一个线框盒体。
DrawWireMesh绘制一个线框网格。
DrawWireSphere使用 center 和 radius 绘制一个线框球体。

3 Gizmos绘制

3.1 立方体:DrawCube

  • 在中心绘制一个带有尺寸的实心框。
using UnityEngine;public class GizmosScript : MonoBehaviour
{private void OnDrawGizmos(){Gizmos.DrawCube(Vector3.zero, Vector3.one); //参数释义: 1.Cube中心点 2.Cube大小}
}

1

3.2 视锥:DrawFrustum

  • 使用当前设置的 Gizmos.matrix 绘制相机平截头体的位置和旋转。
using UnityEngine;public class GizmosScript : MonoBehaviour
{private void OnDrawGizmos(){Gizmos.DrawFrustum(Vector3.zero, 60, 300, 0.3f, 1.7f);//参数释义:1. 绘制中心 2. FOV角度 3. 远裁切平面 4. 近裁切平面 5. aspect 屏幕长宽比}
}

1

3.3 贴图:DrawGUITexture

  • 在该场景中绘制一个纹理。
  • 所选纹理是在 XY 平面(即,Z 坐标为零的平面)定义的“屏幕”上的 3D 空间中 绘制的。纹理矩形的值是以场景单位 给出的。可选边框值以场景单位指定从该矩形内的每条边缘嵌入; 在嵌入的矩形内绘制该纹理,并且向外重复边缘像素。当围绕主纹理的大型 背景区域的边缘为单色时,这是创建此区域的一种非常有用的快速方式。
  • 在结合直接指向该纹理的摄像机创建 GUI 背景时, 此函数会非常有用。
using UnityEngine;public class GizmosScript : MonoBehaviour
{public Texture myTexture;void OnDrawGizmosSelected(){Gizmos.DrawGUITexture(new Rect(0, 0, 10, 10), myTexture); //1.指定Rect 2.指定贴图}
}

1

3.4 图标:DrawIcon

  • 在 Scene 视图中的某个位置绘制一个图标。
  • 使用 name 参数指定该图标的图像文件名, 而 center 参数表示该图标在世界空间中的位置, allowScaling 参数确定是否允许缩放该图标。 应将该图像文件置于 Assets/Gizmos 文件夹中。
using UnityEngine;public class GizmosScript : MonoBehaviour
{public Texture myTexture;void OnDrawGizmosSelected(){Gizmos.DrawIcon(transform.position, "Light Gizmo.tiff", true);}
}

1

3.5 线段:DrawLine

  • 绘制一条从 from 开始到 to 的线。
using UnityEngine;public class GizmosScript : MonoBehaviour
{void OnDrawGizmosSelected(){Gizmos.DrawLine(Vector3.zero, Vector3.one);  //1.from(线段起点) 2.to(线段终点)}
}

1

3.6 网格:DrawMesh

  • 绘制一个网格。
using UnityEngine;public class GizmosScript : MonoBehaviour
{public Mesh mesh;void OnDrawGizmosSelected(){if (mesh != null){Gizmos.DrawMesh(mesh, 0); //1. mesh 2.submeshIndex}}
}

1

3.7 射线:DrawRay

  • 绘制一条从 from 开始到 from + direction 的射线。
using UnityEngine;public class GizmosScript : MonoBehaviour
{void OnDrawGizmosSelected(){// 在对象前面绘制一条 2 单位长的红线Gizmos.color = Color.red;Vector3 direction = transform.TransformDirection(Vector3.forward) * 2;Gizmos.DrawRay(transform.position, direction);}
}

1

3.8 球体:DrawSphere

  • 使用 center 和 radius 绘制一个实心球体。
using UnityEngine;public class GizmosScript : MonoBehaviour
{void OnDrawGizmosSelected(){// 在变换位置绘制一个黄色球体Gizmos.color = Color.yellow;Gizmos.DrawSphere(transform.position, 1);}
}

1

3.9 Cube网格线:DrawWireCube

  • 使用 center 和 size 绘制一个线框盒体。
using UnityEngine;public class GizmosScript : MonoBehaviour
{void OnDrawGizmosSelected(){// 在变换位置画一个黄色立方体Gizmos.color = Color.yellow;Gizmos.DrawWireCube(transform.position, new Vector3(1, 1, 1));}
}

1

3.10 Mesh网格线:DrawWireMesh

  • 使绘制一个线框网格。
using UnityEngine;public class GizmosScript : MonoBehaviour
{public Mesh mesh;void OnDrawGizmosSelected(){// 在变换位置画一个黄色立方体Gizmos.color = Color.yellow;Gizmos.DrawWireMesh(mesh, Vector3.zero, Quaternion.identity, new Vector3(1, 1, 1));}
}

1

3.11 Sphere网格线:DrawWireSphere

  • 使用 center 和 radius 绘制一个线框球体。
using UnityEngine;public class GizmosScript : MonoBehaviour
{void OnDrawGizmosSelected(){// 在变换位置画一个黄色立方体Gizmos.color = Color.yellow;Gizmos.DrawWireSphere(transform.position,1);}
}

1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

寒假刷题-递归与递推

寒假刷题 92. 递归实现指数型枚举 解法1递归 使用递归对每一个坑位进行选择,每个坑位有两种选择,填或者不填,使用st数组来记录每个坑位的状态,u来记录已经有多少坑位有了选择。 每个坑位有2钟选择,n个坑位的复杂度就…

Java根据二叉树的先序和后序得到二叉树

一般情况下,我们会根据先序和后序写出二叉树,但是用代码怎末写呢? 例如: 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二…

pdf怎么查看?6个不能错过的软件!

PDF,作为一种常用的文件格式,已经成为了我们工作、学习中的必备工具。然而,对于许多新手来说,如何查看和编辑PDF文件却是一个不小的挑战。今天,我们就来为大家详细介绍一下如何查看和编辑PDF文件,以及一些必…

01_泛型

文章目录 泛型泛型类泛型接口泛型方法泛型的通配泛型的擦除 泛型 参数化类型。 泛型的好处: 省去了类型强转的麻烦(比如:Object类、interface接口等都需要类型强转)将运行期遇到的问题转移到了编译期 泛型类 所谓泛型类, 就是…

Android Dialog setCanceledOnTouchOutside失效,点击dialog外面不消失

前言:有一个需求需要点击dialog外面要消失,本来以为很简单结果设置了一直未生效 setCanceledOnTouchOutside(true); 问了半天chat-gpt4结果给的答案都不明显 查看代码发现设置了style,于是尝试去除这个style,结果点击setCancele…

【c++】——栈or队列or优先级队列

目录 🎓容器适配器 🎓Stack栈 🚩Stack的介绍 🚩Stack的基本使用 🚩Stack底层实现 🎓queue队列 🚩queue的介绍 🚩queue的基本使用 🚩queue的底层实现 &#x1…

【C++】C++的IO流

一、C语言的输入与输出 C 语言中我们用到的最频繁的输入输出方式就是 scanf () 与 printf()。 scanf():从标准输入设备(键盘)读取数据,并将值存放在变量中。printf():将指定的文字/字符串输出到标准输出设备&#xff…

Java如何做到无感知刷新token含示例代码(值得珍藏)

1. 前言 在系统页面进行业务操作时,有时会突然遇到应用闪退,并被重定向至登录页面,要求重新登录。此问题的出现,通常与系统中用于存储用户ID和token信息的Redis缓存有关。具体来说,这可能是由于token过期所导致的身份…

容器部署的nextcloud配置onlyoffice时开启密钥

容器部署的nextcloud配置onlyoffice时开启密钥 配置 进入onlyoffice容器 docker exec -it 容器id bash编辑配置vi /etc/onlyoffice/documentserver/local.json enable设置为true,并配置secret 重启容器,并将配置的密钥填入nextcloud密钥页面 docker r…

复杂字幕特效SDK,重塑视频字幕新体验

字幕特效已经成为了提升视频品质、增强观众体验的重要手段。美摄科技作为行业领先的技术提供商,近期推出的复杂字幕特效SDK,更是引领了这一领域的创新潮流。 美摄科技复杂字幕特效SDK,不仅具备了电影级别的字幕功能,更实现了众多…

【全网最全】2024华数杯国际赛B题成品论文50页+1-4问高质量代码+完整数据集+建模过程+保姆级教学

基于数据分析下的光伏发电 摘 要(完整版在文末) 根据最新数据,中国的总发电量超过20万亿千瓦时,总体排名世界第一,而光伏发电是一种重要的可再生能源,可以将太阳能转化为电能可以减少对传统能源的依赖&…

VBA窗体跟随活动单元格【简易版】(2/2)

上一篇博客(文章连接如下)中使用工作表事件Worksheet_SelectionChange实现了窗体跟随活动单元格的动态效果。 VBA窗体跟随活动单元格【简易版】(1/2) 为了在用户滚动工作表窗体之后仍能够实现跟随效果,需要使用Application.Windows(1).Visibl…

归并排序详解

目录 ​💡基本思想 💡图文介绍 💡动图演示 💡过程解释 💡代码实现 💡递归实现 💡非递归实现 💡总结 💡基本思想 归并排序(MERGE-SORT)是…

数据结构--串

本文为复习的草稿笔记,,,有点乱 1. 串的基本概念和基本操作 串是由零个或多个字符组成的有限序列 2. 串的存储结构 3.串的应用 模式匹配 BF算法(简单匹配算法 穷举法 算法思路:从子串的每一个字符开始依次与主串…

深耕文档型数据库12载,SequoiaDB再开源

1月15日,巨杉数据库举行SequoiaDB新特性及开源项目发布活动。本次活动回顾了巨杉数据库深耕JSON文档型数据库12年的发展历程与技术演进,全面解读了SequoiaDB包括在高可用、安全、实时、易用性四个方向的技术特性,宣布了2024年面向技术社区的开…

无法打开浏览器开发者工具的可能解决方法

网页地址: https://jx.xyflv.cc/?url视频地址url 我在抖音里面抓了一个视频地址, 获取到响应的json数据, 找到里面的视频地址信息 这个网站很好用: https://www.jsont.run/ 可以使用js语法对json对象操作, 找到所有视频的url地址 打开网页: https://jx.xyflv.cc/?urlhttps:…

【Linux C | 文件操作】目录相关操作 | mkdir、rmdir、opendir、readdir、closedir、getcwd、chdir

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【LeetCode】栈精选9题

目录 1. 删除字符串中的所有相邻重复项(简单) 2. 逆波兰表达式(中等) 3. 基本计算器 II(中等) 4. 字符串解码(中等) 5. 验证栈序列(中等) 6. 小行星碰撞…

新能源汽车智慧充电桩方案:基于视频监控的可视化智能监管平台

一、方案概述 TSINGSEE青犀&触角云新能源汽车智慧充电桩方案围绕互联网、物联网、车联网、人工智能、视频技术、大数据、4G/5G等技术,结合云计算、移动支付等,实现充电停车一体化、充电桩与站点管理等功能,达到充电设备与站点的有效监控…