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.mfbz.cn/a/333504.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

交通路标识别(教程代码)

交通路标识别是一种基于计算机视觉和深度学习技术的应用,旨在通过自动识别和分类交通路标来提高交通安全和效率。下面是对交通路标识别的介绍,并分点阐述其重要性和应用场景: 1. 交通安全增强: 交通路标识别可以帮助驾驶员和行人…

Educational Codeforces Round 161 (Rated for Div. 2) B 2的零次方竟然是1

目录 心情: 55.999999999999993: 题意: 思路: 核心代码: 心情: Div.2,我竟然在50分钟内C题做掉了,想着B题做了基本上不会掉分了这把,B题要考什么我也清楚&#xff0…

【大学物理】电势叠加原理

有限大小的带电体可以选无限远处电势为0。

ubuntu系统 vscode 配置c/c++调试环境

文章目录 1.安装插件2.目录结构3.cmake tools配置 1.安装插件 c/c插件 cmake cmake tools插件 2.目录结构 . ├── build ├── CMakeLists.txt ├── demo │ └── main.cpp ├── image.png ├── src │ ├── add.cpp │ └── add.hpp └── vsdebug.…

java springcloud中发布webservice 接口

java springcloud中发布webservice 接口 一、在pom文件中添加依赖&#xff1a; <!--webservice--><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.0</version></dependen…

【JavaEE进阶】 依赖注⼊DI详解

文章目录 &#x1f334;什么是依赖注入&#x1f384;依赖注入的三种方法&#x1f6a9;属性注⼊(Field Injection)&#x1f6a9;构造⽅法注⼊&#x1f6a9;Setter注⼊&#x1f6a9;三种注⼊的优缺点 &#x1f333;Autowired存在的问题&#x1f332;解决Autowired存在的问题&…

经纬恒润4D成像毫米波雷达亮相 CES 2024

在刚刚结束的CES 2024上&#xff0c;经纬恒润联合以色列Arbe Robotics公司展出了基于Arbe芯片组方案的4D成像毫米波雷达LRR610。 经纬恒润自主研发的4D成像毫米波雷达LRR610&#xff0c;具备48发48收通道&#xff0c;在方位和俯仰向均具有高分辨能力&#xff0c;可以形成丰富的…

FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

Xilinx中PCIe简介以及IP核XDMA的使用 例如&#xff1a;第一章 PCIe简介以及IP核的使用 文章目录 Xilinx中PCIe简介以及IP核XDMA的使用一、PCIe总线概述1.PCIe 总线架构2.PCIe 不同版本的性能指标及带宽计算3.PCIe 接口信号 二、XDMA1.XDMA 与其它 PCIe IP 的区别2.XDMA简介 三…

【clickhouse】Array数组查询操作

文章目录 1 测试数据2 查询3 所用函数3.1 arrayExists3.2 coalesce 1 测试数据 // 建库 create database test;// 建表 CREATE TABLE test.test ( id String, tag1 Array(String), tag2 Array(Int32), updated DateTime ) ENGINE MergeTree ORDER BY id// 插入数据 insert in…

React配置src根目录@

文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…

2019年认证杯SPSSPRO杯数学建模D题(第二阶段)5G时代引发的道路规划革命全过程文档及程序

2019年认证杯SPSSPRO杯数学建模 D题 5G时代引发的道路规划革命 原题再现&#xff1a; 忙着回家或上班的司机们都知道交通堵塞既浪费时间又浪费燃料&#xff0c;甚至有的时候会带来情绪上的巨大影响&#xff0c;引发一系列的交通问题。据报道&#xff0c;每年交通拥堵使得美国…

AGI即将出现,未来最重要的资源是算力和能源

丨划重点 ① 关于新模型的名字&#xff0c;奥特曼还没有明确的想法&#xff0c;但他称不喜欢像“iPhone 27”这样的命名方式。 ② 奥特曼认为AGI将在不久的将来出现&#xff0c;但对社会和工作的影响程度可能远低于预期。 ③ 奥特曼表示&#xff0c;尽管AI的潜力超过预期&#…

2024年最值得关注的跨境电商平台盘点,TikTok Shop或成最大趋势

时代的巨变在2023年尤其明显&#xff0c;这一年随着全球化进程的加深&#xff0c;跨境出海处于“高景气”阶段。为了在跨境出海浪潮中保有稳定的地位甚至获得增长&#xff0c;跨境人最需要关注的是哪个跨境电商平台成为大势&#xff0c;用户所选择的平台是什么&#xff1f;在跨…

100个实战项目——在树莓派4B+Ubuntu20.04桌面版配置下运行智能小车(一)

主机SSH远程链接从机 查看python版本 python 我的是python3.8 所以我需要安装pip3 sudo apt install python3-pip 接着安装程序需要的引脚库 sudo pip3 install RPi.GPIO 注意必须要有sudo&#xff0c;因为我是远程遥控的树莓派&#xff0c;没有权限运行程序&#xff0…

element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解

实现代码&#xff1a; 按钮&#xff1a; <el-button click"takeall" style"height: 24px">{{zhanstatus % 2 ! 0 ? "收起所有" : "展开所有"}} </el-button> 组件&#xff1a; <el-form-item label"可选择菜单…

【报错fatal: unable to access ‘https://github解决办法】

【报错fatal: unable to access ‘https://github解决办法】 方法一&#xff1a;修改host文件 把140.82.114.4 github.com添加到C:\Windows\System32\drivers\etc里的hosts文件的最后一行&#xff0c;然后保存就行 方法二&#xff1a;把命令行里的http改为git重新执行

vulnhub靶机Chill_Hack

下载地址&#xff1a;Chill Hack: 1 ~ VulnHub 主机发现 目标176 端口扫描 服务扫描 直接去看web 先扫一下 有几个有点问题 看着好像命令执行 看来没错直接反弹shell 还有还白名单&#xff1f; bash也不能用 那就用php吧 whoami|php -r $sockfsockopen("192.168.21.13…

回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测

回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测 目录 回归预测 | Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现GA-APSO-MBP、GA-MBP、MBP、BP多输入单输出回归预测&…

扫一扫计数的工具有哪些?分享3款实用的!

在数字化时代&#xff0c;扫描计数软件已经成为我们日常生活和工作中不可或缺的工具。无论是需要快速统计物品数量、识别文字还是测量长度&#xff0c;这些软件都能提供方便快捷的解决方案。本文将为您介绍3款实用的扫描计数软件&#xff0c;帮助您轻松解决各种计数难题&#x…

探索自适应学习在考试培训系统中的优势

近年来&#xff0c;随着互联网的普及和发展&#xff0c;自适应学习作为一种个性化、灵活的学习方式受到越来越多教育工作者的关注。在考试培训系统中引入自适应学习&#xff0c;可以为学生提供更加有效和高效的学习体验。 自适应学习可以根据学生个体的学习特点和水平&#xff…
最新文章