Unity 一些常用注解

本文详细介绍了Unity中常用的9种注解,如SerializeField用于显示编辑器、Range设置属性范围、RequireComponent确保组件存在等,帮助开发者更好地管理脚本和游戏对象的Inspector窗口。

在Unity中有一些比较常用的注解:

1、[SerializeField]:将私有字段或属性显示在 Unity 编辑器中,使其可以在 Inspector 窗口中进行编辑。

2、[Range(min, max)]:限制数值字段或属性的范围,在 Inspector 窗口中以滑动条的形式进行编辑。

3、[Header("Text")]:在 Inspector 窗口中给字段或属性添加标题。

4、[Tooltip("Text")]:在 Inspector 窗口中给字段或属性添加工具提示。

比如我在脚本中做了这些注解:

在 Inspector 窗口下我们会看到如下效果:

5、[HideInInspector]:隐藏字段或属性,做了这个标记,在 Inspector 窗口中将不显示该字段或属性。

如:

定义了公共布尔值,但是窗口隐藏了该布尔值。

6、[RequireComponent(typeof(ComponentType))]:确保脚本所在的 GameObject 上附加了指定的组件。

如:

[RequireComponent(typeof(Rigidbody))]
public class MyScript : MonoBehaviour
{
    // ...
}

这样就确保该组件必须附加Rigidbody组件,即使没有,将会自动添加。

这也是我们经常会碰到那些我们想要删除却删除不了的组件,那是因为有脚本绑定了该组件为附加组件了,只有先删除定义的绑定脚本才能删除。

7、[ContextMenu("Text")]:在 Inspector 窗口中给方法添加上下文菜单。

如:

当我在Annotate的DoSomething加了[ContextMenu("Do Something")],那么在编辑器中我右键组件中的Annotate脚本,就可以看到"Do Something"菜单,通过点击可运行该方法。

8、[Serializable]:这个就比较常见了。它主要标记类或结构体可序列化。其中[Serializable]注解的类需要满足以下条件:

  1. 类必须是公共类(public class)。
  2. 类必须是非嵌套类(不能是其他类的内部类)。
  3. 类的所有字段(包括私有字段)都必须是可序列化的类型或标记为 [Serializable]

被标记为 [Serializable],可以对该类进行序列化和反序列化的操作。

还有,当我们使用[Serializable]注解结构体时,可以使得公共类在 Inspector 窗口是可见的。这个也是比较常用的。

9、[ExecuteInEditMode]:在编辑器模式下执行脚本,用于在编辑器中实时预览某些效果。

使用该标记,当脚本所在的 GameObject 在编辑器中被激活、属性发生变化或者Transform 发生变化时,就会执行被注解的脚本。这可以方便我们在编辑模式下就行一些调参或者查看效果,而无需来回切换到播放模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿游也

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值