unity简单示例——自定义脚本特性(只读,滑条,多选框)

Unity GUI 通过某个GUI控件禁用另一个GUI控件 前言: Unity的GUI系统相对UGUI系统而言,实在是不方便. 就如GUI控件的启用和禁用,也没有UGUI中的SetActive方法来得方便. GUI中有个变量为enabled,可以控制"图形用户界面组件是否被启用",有2个布尔值true和false供选用.但是其针对所有的GUI控件同时生效. 问题来了: 如果想用gui控件A自由地"禁用"和"启用"gui控件B,使用了GUI.enab 阅读详情

包括只读,滑条,多选框

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
/****************************************************
	作者:cg
	功能:
*****************************************************/
#region 只读
public class MyReadOnlyAttribute:PropertyAttribute
{
}
[CustomPropertyDrawer(typeof(MyReadOnlyAttribute))]
public class MyReadOnlyDrawer : PropertyDrawer
{
    public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
    {
        return base.GetPropertyHeight(property, label);
    }
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        GUI.enabled = false;
        EditorGUI.PropertyField(position, property, label,true);
        GUI.enabled = true;
    }
}
#endregion

#region 滑条
public class MyRangeAttribute : PropertyAttribute
{
    public float Min;//最小值
    public float Max;//最大值

    public MyRangeAttribute(float min, float max)
    {
        this.Min = min;
        this.Max = max;
    }
}
[CustomPropertyDrawer(typeof(MyRangeAttribute))]
public class MyRangeAttributeDrawer : PropertyDrawer
{
    //重载OnGUI方法
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        MyRangeAttribute myRange = attribute as MyRangeAttribute;

        if (property.propertyType == SerializedPropertyType.Integer)
        {
            EditorGUI.IntSlider(position, property, (int)myRange.Min, (int)myRange.Max, label);
        }
        else if (property.propertyType == SerializedPropertyType.Float)
        {
            EditorGUI.Slider(position, property, myRange.Min, myRange.Max, label);
        }
        else
        {

        }
    }
}
#endregion

#region 多选
public class MultipleBoxAttribute : PropertyAttribute
{

}
[CustomPropertyDrawer(typeof(MultipleBoxAttribute))]
public class MultipleBoxAttributeDrawer : PropertyDrawer
{
    public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        property.intValue = EditorGUI.MaskField(position, label, property.intValue, property.enumNames);
    }
}
#endregion

 

unity:NGUI插件 NGUI NGUI是严格遵循KISS原则并用C#编写的Unity(适用于专业版和免费版)插件,提供强大的UI系统和事件通知框架。其代码简洁,多数类少于200行代码。这意味着程序员可以很容易地扩展NGUI的功能或调节已有功能。对所有其他用户而言,这意味着更高的性能、更低的学习难度和更加有趣。 下面我们来介绍NGUI的特性: 完全集成到Inspector面板中。 不需要点击Play按钮就能查看结果。 在场景视图中看到的就是在游戏视图中得到的(所见即所得)。 组件、模块化的特性:要让你的界面控件做什么,只需为 阅读详情

相关推荐

unity自定义特性在inspector面板上显示或者隐藏字段

使用自定义特性在unity的inspector面板上显示或者隐藏字段

SerializedProperty类

一、SerializedProperty类属性及函数 首先提供官方参考文档:API-Reference-SerializedProperty 概述:命名空间在UnityEditor内;SerializedProperty类通常和SerialedObjec以及Editor类一起使用;用于修改属性的内容; 属性 boolValue / floatValue / doubleValue / i...

mozhi 6115

旋转矩阵推导

推导前提: 坐标使用右手坐标系,角度逆时针旋转为正。 绕X轴旋转角度为 俯仰角 即Pitch 绕Y轴旋转角度为 偏航角 即Yaw(Head) 绕Z轴旋转角度为 翻滚角 即Roll 一、平面二维坐标点的旋转 如右图所示,根据三角函数关系,可以列出向量OP与OP’的坐标表示形式: x = |OP|•cosα x′ = |OP|•cos(α+β) y = |OP|•sinα y′ = |OP|•sin(α+β) 将P′(x′,y′)表达式展开: x′ =

suixinger_lmh的随笔 1384

Unity笔记3 - GUI

如果大佬在阅读过程中发现本人有误或有更好用的方法,欢迎指正和教导,十分感谢 GUI图形用户界面系统就是项目开发过程中的按钮、文本、图片、开关……这类的2d控件。 需要注意的是,GUI的坐标系统是左上角为(0, 0),右下角为(Screen.width, Screen.height)。 GUI的相关代码需要写在OnGUI函数中。 void OnGUI() { GUIStyle labelStyle = new GUIStyle(); // 创建一个GUIStyle对象,用来控制GUI控.

lannan91的专栏 515

保姆级教程:在ROS Noetic下,手把手教你将自定义A*全局规划器打包成插件(附避坑指南)

本文提供了一份详细的ROS Noetic下自定义A*全局规划器插件开发指南,涵盖从环境准备、算法优化到插件配置与调试的全流程。通过实战案例和避坑技巧,帮助开发者高效实现机器人导航中的全局路径规划,特别适合需要优化ROS导航栈的开发者。

weixin_29168675的博客 285

极速建站!用1Panel面板一键部署Halo博客的保姆级教程 | 企业官网/个人博客搭建教程

个人博客是一种在互联网上发布自己的文章、图片、视频等内容的平台,通常以文字为主要形式,但也可以包含其他媒体。个人博客的用途非常广泛。它可以用来记录博主的日常生活、分享自己的知识和经验、展示自己的作品和技能,以及交流自己的观点和看法。通过个人博客,博主可以与读者建立联系,分享自己的见解和体验,同时也可以从读者那里获得反馈和建议。

zeruns的博客 1832

SerializedProperty 序列化属性

SerializedProperty 序列化属性 SerializedProperty and SerializedObject are classes for editing properties on objects in a completely generic way that automatically handles undo and styling UI for p

linuxheik的专栏 2525

PCB光绘文件DFM检查:从Gerber验证到制造闭环

Gerber文件是PCB设计交付制造的核心数据载体,其准确性直接决定硬件可制造性与量产良率。理解Gerber格式规范、IPC网表比对原理及DFM(Design for Manufacturability)自动检测逻辑,是电子工程师保障设计落地的关键能力。通过电气连通性验证、物理DRC规则扫描与工艺兼容性分析,DFM工具能提前识别开路、短路、孔环不足、阻焊异常等典型问题,避免投板后返工甚至批量报废。在国产化替代趋势下,华秋DFM等平台已深度适配Altium Designer工作流,支持一键导入、智能报告与协同

weixin_42620563的博客 507

【Unity编辑器扩展基础】、GUI

一、静态属性 1、颜色 改变背景颜色:GUI.backgroundColor 改变内容颜色:GUI.contentColor 改变内容改变内容和背景颜色:GUI.color //改变背景颜色 GUI.backgroundColor = Color.yellow; GUI.Button(new Rect(0, 0, 200, 30),...

不文不武的禾文 2169

硅基半导体量子点:单电子自旋量子比特技术手册

现在我们已经了解了从硅片到容错计算的全部环节,让我们用一张总览图把碎片拼成完整拼图。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;important;important;important;color:#000!important;important;important;important;important;color:#000!

VectorShift的博客 371

C# 调用高德地图关键词 API

今天我们要一起探索如何使用 C# 来调用高德地图的关键词搜索 API,从而实现精准的地理位置搜索功能。高德地图的关键词搜索 API 可以帮助我们轻松地实现这一点,它能够返回一系列匹配关键词的地点坐标和其他相关信息。通过简单的几行 C# 代码,我们就实现了调用高德地图关键词搜索 API 的功能。接下来,我们将在一个 C# 控制台应用中实现调用高德地图关键词搜索 API 的功能。此外,如果要在生产环境中使用,还需要考虑安全性问题,例如不要在客户端暴露 API 密钥。🔥关注墨瑾轩,带你探索编程的奥秘!

java专栏 1105

Unity Attribute 特性全面总结

AddComponentMenu: 作用于脚本中的类,可在“Component”菜单中的任意位置放置脚本,而不仅是“Component > Scripts”菜单。点击multiline字段右键上下文菜单中的Reset,执行脚本中的 ResetMultiline 函数,清空 multiline 字段。HideInInspector: 作用于变量,使变量不显示在 Inspector 中,但会进行序列化。ContextMenuItem: 作用于变量,对字段添加一个右键菜单,并执行指定的函数。

Unity打怪升级 1672

基于FFT的轴承故障诊断 - MATLAB代码和详细解释

最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。最后,我们可以根据异常特征的位置和特征分析来确定轴承故障的类型。因此,通过分析频谱图,我们可以识别轴承故障的特征。因此,通过分析频谱图,我们可以识别轴承故障的特征。我们可以选择适当的阈值,并在频谱图上标记异常特征。通过这种基于FFT的轴承故障诊断方法,我们可以快速、准确地检测和诊断轴承故障。接下来,我们将应用FFT来获取振动信号的频谱信息,频谱显示了信号在不同频率上的能量分布。通过将异常特征标记在频谱图上,我们可以直观地识别轴承故障的存在。

COWizard的博客 613

Unity 扩展编辑器 - Inspector 面板特性用法整理

ContexMenuItem("Funcl","Text")] : 使其在Inspector面板鼠标,右键点击该变量时,出现一个按钮第一个参数 表示 按钮的名字 ,第二个参数,表示要执行的方法,保证要有该方法且需 要成员方法。(typeof(BoxColider))] : 该特性 意思是, 修饰的类依赖于参数里的类,当修饰的类挂到物体上时,会检查该物体上是否有依赖的组件,如果有,不会重复的添加,如果没有依赖的组件,会默认添加依赖的组件。注: 参数只能显示在面板操作的最大最小值,并不能限制实际的值。

weixin_41316824的博客 1611

华为交换机、路由器配置静态路由实现不同网段通信

华为交换机、路由器配置静态路由实现不同网段通信。在主核心交换机上配置vlanif10 192.168.10.254/24,vlanif20 192.168.20.254/24,vlanif100 192.168.100.1/24,PC1:192.168.10.1能ping通PC2:192.168.20.1,也能ping通PC3:192.168.30.1,交换机和路由器使用静态路由。

星如雨落 6460

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Unity中Inspector一些辅助特性

7. 为变量添加快捷方法 ContextMenuItem [ContextMenuItem("按钮名","方法名")]//无参无返回方法。8. 为方法添加特性能在Inspector中执行 ContextMenu [ContextMenu("方法名")]//脚本三个点中。6. 字符串显示滚动条 TextArea [TextArea(3,4)]//最少3行,最多4行,超过显示滚动条。5. 字符串多行 Multiline [Multiline(4)]//默认3行。

qq_28754179的博客 762

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Unity常用特性笔记

强制序列化字段特性,可以使private和protected访问权限的变量显示在unity的Inspector窗口中。使自定义类可以显示在Inspector窗口中,字典无法显示在Inspector窗口。最少显示x行,最多显示y行,超过y行显示滚动条,不写参数默认为三行。不允许public访问权限的变量显示在Inspector窗口中。Inspector窗口中右键变量执行方法,一般用来重置变量。方法特性,使方法可以在Inspector中被调用。多行显示字符串,参数为空默认显示三行。让两个变量间产生间隔。

LuoXiaoYuw的博客 456

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

unity--特性(三)

特性: 就是一种声明性的标签(类、结构体、枚举、字段(变量)等) 下面划分了3个方面 一、修饰字段 [Header("怪物属性")] : 面板标题 在U3D的Inspactor面板显示一个标题 [Tooltip("血量")] : 悬停的注释 当鼠标悬停在该变量在Inspector面板上时,显示有一个Tip提示,...

学海无涯 752

unity脚本的一些特性

【代码】unity脚本的一些特性。

羽阿呆的博客 249

唐老狮Unity入门笔记

1. Inspector窗口中的变量关联的就是对象的成员变量,运行时改变他们就是在改变成员变量。2.拖拽到GameObject对象后,再改变脚本中变量默认值,界面上不会改变。3.运行中修改的信息不会保存(可以copy后paste)让自定义类型可以显示编辑。大部分类型都能显示编辑。

m0_61939767的博客 2543

特性( 在unity里inspector面板的一些用处 )

   之前学习c#的时候 碰到[ ] 里一堆英文 ,就发憷,,现在才了解 这种格式的写法叫做 特性    下面,开始总结一下自己所理解的 特性 和一些 特性的意思:       特性: 就是一种声明性的标签(类、结构体、枚举、字段(变量)等)       下面划分了3个方面     一、修饰字段            [Header("怪物属性")]    : 面板标题  在U3D的In...

j_sbytc3的博客 6528

Unity——编辑器拓展

#编辑器拓展 ##一、菜单栏拓展 ###Menultem [Menultem("Test/CreatePanel/func1 %_Q"),true,1] 1、路径+快捷键,是否启用,排列顺序 2、配合Selection.Object选中物体文件夹时启用 3、方法必须是静态方法 [MenuItem("Test/OpenPanel %_Q",true)] public static bool IsSelected() { if (Selection.objects.Length > 0) retur

小紫苏的博客 952

Unity入门系列之Inspector窗口可编辑变量

加上序列特性自定义类就可以被访问了,但是字典怎么样都不可以被访问。

2303_76354097的博客 1010

Unity核心概念③:Inspector窗口可编辑变量

Unity Inspector窗口变量编辑指南 Inspector窗口显示的是脚本成员变量,通过特性控制其可见性和编辑性:[SerializeField]强制显示私有变量,[HideInInspector]隐藏公共变量。常用特性包括:[Header]分组、[Tooltip]悬停提示、[Range]数值范围限制、[Multiline]多行文本等。自定义类型需添加[Serializable]特性。注意:运行时修改Inspector变量会直接改变成员变量值,但脚本默认值修改不会自动更新已拖拽的对象。

a704981991的博客 853

Unity入门知识点

目录Unity脚本基础生命周期函数 知识点Inspector窗口可编辑变量 知识点MonoBehavior中的重要内容Unity重要组件和ApiGameObject知识点GameObject的成员变量GameObject的静态方法GameObject中的成员方法时间相关 TimeTransformVector3基础和Transform位置Transform位移Transform角度和旋转Transform 缩放和看向Transform父子关系Transform坐标转换。

ZRP2012的专栏 142

Untiy基础学习(五)Inspector窗口中可编辑的变量

本文简单介绍了关于Inspector中如何显示变量,以及相关特性汇总

FAREWELL00075的博客 1239
上一篇: unity简单示例——项目内创建脚本模板
下一篇: unity简单示例——项目中检测FPS,考虑时间缩放的影响
勤学者闯天涯
博客等级 码龄10年 25粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值