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)
上一篇 2022年7月21日 上午7:36
下一篇 2022年7月21日 上午7:36


相关推荐

  • iOS的xcode的version,build以及App Store的version

    iOS的xcode的version,build以及App Store的version

    2021年6月14日
    155
  • 数学速算法_小学初中高中 数学奥数教材及习题讲解(共42册PDF)「建议收藏」

    数学速算法_小学初中高中 数学奥数教材及习题讲解(共42册PDF)「建议收藏」学习勤育儿|爱自己在育儿的道路上,家长和孩子一同成长;慢慢陪孩子走,把我们的时间浪费在孩子身上,是世间最有价值的浪费!资源介绍奥数对青少年的脑力锻炼有着一定的作用,可以通过奥数对思维和逻辑进行锻炼,对学生起到的并不仅仅是数学方面的作用,通常比普通数学要深奥些。奥数相对比较深,数学奥林匹克活动的蓬勃发展,极大地激发了广大少年儿童学习数学的兴趣,成为引导少年积极向上,主动探索…

    2022年6月30日
    24
  • RGBD深度相机_rgbd相机是什么

    RGBD深度相机_rgbd相机是什么深度相机与RGBD相机的区别?为何经常概念混淆?什么是深度图? 什么是深度/RGB-D相机(有什么关系?)? RGB-D相机原理简介结构光 飞行时间RGB-D相机有哪些坑? RGB-D相机优点 RGB-D相机应用深度图一般是16位的单目结构光?双目结构光?单目结构光有一个红外发射器和一个红外接收器双目结构光有一个红外发射器和两个红外接收器…

    2026年1月16日
    4
  • 删除卡巴斯基激活码

    删除卡巴斯基激活码

    2021年7月24日
    59
  • 基本布局-QHBoxLayout类、QVBoxLayout类、QGridLayout类

    基本布局-QHBoxLayout类、QVBoxLayout类、QGridLayout类(1)新建QtWidgetApplication,项目名UserInfo,基类QDialog,取消创建界面;(2)打开dialog.h头文件,在头文件中声明对话框中的各个控件,添加代码#ifndefDIALOG_H#defineDIALOG_H#include//添加头文件#include#include#inclu

    2022年6月21日
    50
  • JAVA遍历数组的三种方法_如何遍历一个数组

    JAVA遍历数组的三种方法_如何遍历一个数组我们也了解Java也已经很久了,那今天小编想问大家是否知道java遍历数组的方式有哪些?是不是内心已经已经有答案了?让就跟着小编的步伐一起看看吧。1.for循环遍历这是最基本的遍历方式通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。2.Arrays的toString方法debug快速查看方法利用Array…

    2026年1月26日
    4

发表回复

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

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