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

Unity Inspector窗口可编辑的脚本变量

Inspector可编辑的脚本变量

默认会显示的变量

在Unity中,为了方便我们进行一些属性的设置及调试,我们所写的公有基础数据类型会显示在Inspector之中,我们可以对他进行设置来更改它的取值。

image-20241120111949199

显示私有变量

在有些情况下,设计代码的时候会设计一些私有变量,但是有希望这些变量可以在Inspector窗口被显示或可编辑,便于后续的调试,但Unity默认不显示私有变量,我们需要手动进行设置让他显示出来。

在Unity编辑器中,显示私有变量的方法有两种,一种是打开Inspector窗口的Debug视图,私有变量将会呈灰色显示,并且无法更改它的值:

image-20241120112344850

另一种方式则是添加SerializeField特性,它可以让私有变量在Inspector中直接可见并可以编辑:

image-20241120112537887

显示自定义数据类型

在Unity中,自定义的类、结构体的变量无论是公有还是私有,都是不会被显示出来的,要想被显示出来需要使用特性System.Serializable,它会将这个类视为数据类进行处理:

image-20241120121945226

隐藏公有变量

在实际开发中,可能在一些参数上我们已经测试出来了合适的数值,并且不希望后续有人对他进行修改,而且因为代码互相的关联性无法直接设置成私有变量,这是就只能将他在Inspector窗口中隐藏起来。

需要隐藏一个变量时,与显示私有变量同理,只需要添加特性HideInInspector即可:

image-20241120114127621

限制可以输入的取值范围

在一些时候我们可能编码时会对一些变量进行特殊的处理,这是会要求填写数值时只能限制在某一范围内,而单纯的口头或书面限制可能并不会让人遵守,这时候就需要物理代码层面限制。

在Unity中同样提供了一个特性来限制可输入范围[Range(最小值, 最大值)],添加了此特性的变量显示时会在输入框前添加一个滑动条,可以滑动进行设置,同时输入的任何一个大于或小于边界值的值都会被强制改为边界值,保证取值在需要的范围内:

image-20241120115024109

其他特性

  • Inspector窗口中显示加粗的标题对内容进行分割
    如果我们一个脚本中设置的变量非常多的情况下,我们可能会需要有一个标题性质的文本对他进行分割或分类,这时可以杀死用Unity提供的Header特性,它可以在窗口中增加一行加粗文本,可以通过文本的位置来判断:
    image-20241120115759270

  • 在不同变量显示时进行换行
    为了保持界面美观及与前面的变量进行区分,我们可以通过让变量进行换行显示,只需要用到Space特性即可:
    image-20241120120054067

  • 添加提示语
    因为在Inspector中没办法显示出来变量具体的类型,变量过多时我们可能也对某一些变量的作用会产生混淆,此时使用Tooltip来进行标记说明是一个很好的解决方案,他将会让我们将鼠标放在变量名上时显示对应变量的Tooltip:
    image-20241120120459491

  • 设置多行显示
    对于一些字符串,可能会存储分行的多行信息,原本的显示框只能显示一行文本,使用Multiline(行数)可以实现多行显示,默认会以3行进行显示,但是需要注意的是设置多行显示并不会让文本进行自动换行显示:
    image-20241120124045164

  • 设置多行显示并且自动换行
    对于一些特殊的数据,我们在编辑时就会添加换行,或者对于一些数据读取时,我们希望它自动换行来提高可读性,这是可以用到Area(最小显示行数, 最大显示行数)这个特性,他会将长文本自动换行,超过最大显示行数会在文本框右侧显示滑动条便于快速找到所需内容:
    image-20241120140238917

  • 为属性添加方法

    对于部分属性,我们提供了一个初始值,并且允许进行修改其他值,如果最终其他值不合适,我们想要将初始值添加回来,这是可以给这个属性添加ContextMenuItem("名称", "方法名")的特性,它会使我们右键该属性的时候出现额外的我们设定的选项,但是要注意的是,这里提供的方法只能是无参无返的函数,是否为公有函数并没有任何影响:
    image-20241120141136536

  • 为函数添加特性使其可以在Inspector窗口中运行
    对于某些情况,我们可能需要一些函数在游戏运行前对一些数值进行检测或去重置一些属性值,这是可以给这个函数或方法加上ContextMenu("显示的方法名"),此时可以在对应组件右侧三点打开菜单栏,在最下方看见我们添加的显示的方法名,可以通过点击这个按钮来调用方法(重置参数值的方法Unity也提供了函数Reset,可以直接重写该函数实现):
    image-20241120142411824

  • 多个特性叠加使用
    在上面提到的特性基本上都能进行叠加使用,例如可以在限制范围时添加提示语等等,只需要将不同的特性用逗号隔开即可。


http://www.kler.cn/a/406672.html

相关文章:

  • 向量数据库FAISS之一:官方简单教程
  • 行列式的理解与计算:线性代数中的核心概念
  • 浅析解析 3D NMS 算法及实现
  • 知识图谱介绍
  • Vue.js 性能优化指南:掌握 keep-alive 的使用技巧
  • OpenCV 计算图像清晰度
  • day06(单片机高级)PCB设计
  • 解锁业务成功:大数据和 AI 如何协作以释放战略洞察
  • mac安装Pytest、Allure、brew
  • 【图像去噪】论文精读:Pre-Trained Image Processing Transformer(IPT)
  • Spark RDD Checkpoint 常用于需要高容错性或深度依赖链优化的场景,特别是在机器学习和大数据处理过程中。
  • Linux 使用gdb调试core文件
  • vpc云网络如何构建(理论篇)
  • 【数据分享】中国住户调查年鉴(2000-2024) PDF
  • 【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程
  • Flutter:SlideTransition位移动画,Interval动画延迟
  • 基于SpringBoot实现的在线课程管理系统(代码+论文)
  • 科技部的国家一级资质科技查新机构有哪些?
  • 第 28 章 - Go语言 Web 开发入门
  • android 使用MediaPlayer实现音乐播放--基础介绍
  • Devexpress.Dashboard的调用二义性
  • GaussDB 华为高斯数据库
  • macos 使用 nvm 管理 node 并自定义安装目录
  • 超越GPT-4o-mini | 北大开源「国产o1」大模型,{多阶段自主推理}让小模型也能“放大招“!
  • 香港站群服务器有助于提升网站在搜索引擎中的排名
  • QT设置MessageBox的大小