Odin Inspector 系列教程 — Show If Attribute

Odin Inspector 系列教程 — Show If AttributeShowIfAttribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。这个特性的效果主要是当指定条件满足时,显示对应的属性,默认传入的参数为对应属性的名称,如果为True或者不为null时,显示属性[ShowIf(“IsToggled”)]publicVector2VisibleWh…

大家好,又见面了,我是你们的朋友全栈君。

Show If Attribute用于任何属性,并且可以在检查器中隐藏该属性。使用此选项可根据对象的当前状态隐藏不相关的属性。

7643202-2d65453e9f6bde2e.gif

这个特性的效果主要是当指定条件满足时,显示对应的属性,默认传入的参数为对应属性的名称,如果为True或者不为null时,显示属性
    [ShowIf("IsToggled")]
    public Vector2 VisibleWhenToggled;
还以指定一个选项值,当指定的属性与这个值拼配时,显示属性
    [ShowIf("SomeEnum", InfoMessageType.Info)]
    public Vector3 Info;

    [ShowIf("SomeEnum", InfoMessageType.Warning)]
    public Vector2 Warning;

    [ShowIf("SomeEnum", InfoMessageType.Error)]
    public Vector3 Error;
可以使用@特殊符号写入表达式,其表达式的值作为实参
    [ShowIf("@this.IsToggled && this.SomeObject != null || this.SomeEnum == InfoMessageType.Error")]
    public Vector3 HideWhenNull;
完整示例代码
using Sirenix.OdinInspector;
using UnityEngine;

public class ShowIfAttributeExample : MonoBehaviour
{
    public UnityEngine.Object SomeObject;

    [EnumToggleButtons]
    public InfoMessageType SomeEnum;

    public bool IsToggled;

    [ShowIf("SomeEnum", InfoMessageType.Info)]
    public Vector3 Info;

    [ShowIf("SomeEnum", InfoMessageType.Warning)]
    public Vector2 Warning;

    [ShowIf("SomeEnum", InfoMessageType.Error)]
    public Vector3 Error;

    [ShowIf("IsToggled")]
    public Vector2 VisibleWhenToggled;

    [ShowIf("@this.IsToggled && this.SomeObject != null || this.SomeEnum == InfoMessageType.Error")]
    public Vector3 HideWhenNull;
}

更多教程内容详见:革命性Unity 编辑器扩展工具 — Odin Inspector 系列教程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162801.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 加密和解密

    加密和解密

    2021年6月14日
    112
  • S3C2440 之SPI

    S3C2440 之SPI概述:S3C2440有两个串行外设SPI接口,SPI具有全双工通信SPI方框图 SPI操作:通过使用SPI接口,S3C2440可以与外部器件同时发送、接收8位数据。当SPI接口为主机时,可以通过设置SPPREn寄存器来设置发送频率,当SPI为从机时,由其它主机提供时钟频率。当程序员写字节数据到SPTDATn寄存器,将同时开始发送和接受,在一些情况下,应该在写字节数据到SPT

    2022年5月2日
    37
  • PyTorch安装最全流程

    PyTorch安装最全流程本文介绍基于Anaconda环境以及PyCharm软件结合,安装PyTorch深度学习框架。1.Anaconda安装下载链接:https://www.anaconda.com/1.1点击Next1.2点击同意1.3点击Next1.4选择目标文件夹,点击下一步1.5将Anaconda加入到系统变量安装成功后,在CMD中检查Anaconda时候加入到环境变量中。1.6单击启动AnacondaPrompt创建虚拟“房间”通过conda创建一个名为:pytorch.

    2022年6月24日
    72
  • fflush和fsync的联系和区别「建议收藏」

    fflush和fsync的联系和区别「建议收藏」1.提供者fflush是libc.a中提供的方法,fsync是系统提供的系统调用。2.原形fflush接受一个参数FILE*.fflush(FILE*);fsync接受的时一个Int型的文件描述符。fsync(intfd);3.功能fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。fsync:是把内核缓冲刷到磁盘上。c库

    2022年5月13日
    36
  • 微机原理考试试题及答案分析_微机原理及接口技术

    微机原理考试试题及答案分析_微机原理及接口技术微机原理与接口技术期末考试试题及答案微机原理与接口技术期末考试题库微机系统的硬件由哪几部分组成?答:三部分:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。分三组:地址总线,数据总线,控制总线。8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的…

    2022年9月1日
    2
  • C#中write和writeline的区别「建议收藏」

    writeLine:将要输出的字符串与换行控制字符一起输出,当次语句执行完毕时候,光标会移到目前输出字符串的下一行。例如:write:光标会停在输出字符串的最后一个字符,不会移动到下一行。writeLine实例运行效果如下图:write实例运行效果如下图:…

    2022年4月10日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号