前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity 中 C#脚本里的方括号声明(含常用声明介绍)

Unity 中 C#脚本里的方括号声明(含常用声明介绍)

作者头像
花叔
发布2021-12-04 11:08:16
2.5K0
发布2021-12-04 11:08:16
举报
文章被收录于专栏:花叔的专栏花叔的专栏

最近开始学unity,对于一些基础知识,还是习惯边码边写文章的形式来学习。

在js中,中括号是定义数组的,在c#中,中括号是进行声明的(c#中用{}定义数组),而声明中最常见的是序列化属性。

关于序列化:序列化(Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区,之后便可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。序列化使其他代码可以查看或修改那些不序列化便无法访问的对象实例数据。

而unity中常用的声明有以下这些:

声明

标记类型

说明

用法举例

RequireComponent

组件属性

添加组件到 game object 上,且该组件不能删除。

[RequireComponent(typeof(Animator))]public class TestOne : MonoBehaviour {}

HideInInspector

成员属性

在Inspector 面板中隐藏public的属性,但不含序列化功能。

[HideInInspector]public int Blood = 10;

AddComponentMenu

组件属性

在Component菜单下显示自己的类。

[AddComponentMenu("Ahaha/TestOne")]public class TestOne : MonoBehaviour{}

ExecuteInEditMode

标记类。选中有该脚本的 game object时,会执行脚本,不用点play。

[ExecuteInEditMode]public class TestOne : MonoBehaviour{}

SerializeField

属性

将私有变量强制显示出来

[SerializeField]private int dir=0;

NonSerialized ‍

属性

隐藏序列化的属性

[NonSerialized]public int dir=0;

Serializable

仅对"类、结构、枚举、委托"声明有效,能在编辑器面板显示类的属性(可修改)

[Serializable]public class myClass{public int a=0;public int b=1;}[SerializeField, Tooltip("显示类的属性")]public myClass myclass;

ContextMenu

成员函数

允许您向组件右上角菜单菜单添加命令

[ContextMenu("移动到111")]void MoveTo111 (){}

range‍

成员属性

在 Inspector 面板中显示一个滑动条。

[Range(0.0f,10.0f)]public float bu=3.0f

Tooltip

成员属性

注释,双击编辑器中某个gameobject时脚本上某个属性名时显示

[SerializeField, Tooltip("这是方向属性的描述")]public int dir=0

Multiline‍

成员属性

使字符串可以用多行文本框编辑,没有滚动条

[Multiline(5)]public string text=""

TextArea

成员属性

使字符串可以用多行文本框编辑,有滚动条

[TextArea(1,5)]public string abc

Header

成员属性

在组件上下文中加入一个标题

[Header("方向")]public int dir=0

DisallowMultipleComponent

组件属性

确保组件唯一,约束不能增加多个同类组件

[DisallowMultipleComponent]public class testEdit : MonoBehaviour {...}

ContextMenuItem

成员属性

为属性增加一个方法,右键编辑器中属性key值时显示

[Multiline][ContextMenuItem("Reset", "ResetString")]public string bb;public void ResetString(){bb = "";}

ColorUsage

成员属性

颜色选择器,参数为是否包含透明度

[ColorUsage(true)]public Color cc;

在编辑器中要显示下选项可以用序列化的枚举声明,代码如下:

代码语言:javascript
复制
//枚举的下拉表达
[Serializable]
public enum days{a,b,c}
[SerializeField, Tooltip("枚举介绍")]
public days myDays;

还有相当多的声明可用,有空再在评论中更新。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MinProgram 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档