Unity 一些常用注解

在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 发生变化时,就会执行被注解的脚本。这可以方便我们在编辑模式下就行一些调参或者查看效果,而无需来回切换到播放模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

glFenceSync

glClientWaitSync是OpenGL中用于等待同步对象状态变化的函数,它可以用于在CPU端等待GPU端的某个操作完成。下面是glClientWaitSync相关的函数以及一个简单的例子: glFenceSync:创建一个同步对象。 GLsync glFenceSync(GLenum condition, GLbi…

简单好用!日常写给 ChatGPT 的几个提示词技巧

ChatGPT 很强,但是有时候又显得很蠢,下面是使用 GPT4 的一个实例: 技巧一:三重冒号 """ 引用内容使用三重冒号 """,让 ChatGPT 清晰引用的内容: 技巧二:角色设定…

【C++】string模拟

string讲解&#xff1a;【C】String类-CSDN博客 基本框架 #pragma once #include <iostream> using namespace std; ​ namespace wzf {class string{public:// 默认构造函数string(): _str(new char[1]), _size(0), _capacity(0){_str[0] \0; // 在没有内容时仍要有终…

手把手教你使用NVIDIA Isaac Sim进行机器人仿真,通过stl模型转为isaac sim支持的格式

很好的一篇文章 手把手教你使用NVIDIA Isaac Sim进行机器人仿真① 讲解了通过stl模型转为isaac sim支持的格式 并且使车辆动起来了 手把手教你使用NVIDIA Isaac Sim进行机器人仿真① https://zhuanlan.zhihu.com/p/590860384 仿照这个过程&#xff0c;后续做一个无人机飞行的场…

计算机体系结构----基本概念(一)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。绝大部分资料来自----计算机系统结构教程(第二版)张晨曦等 计算机体系结构----基本概念 计算机系统设计的定量原理1. Amdahl定律&#xff08;阿姆达尔定律&#xff09;2. CPU性能公式3. 程序的局部性原理 计算…

计算机组成原理期中题库

计算机组成原理题目集 2.1 下面是关于计算机中存储器容量单位的叙述&#xff0c;其中错误的是 A. 最基本的计量单位是字节&#xff08;Byte&#xff09;&#xff0c;一个字节等于8bit B. 一台计算机的编址单位、指令字长和数据字长都一样&#xff0c;且是字节的整数倍 C. 最小…

C++ 学习之函数成员指针的一个小细节

看看下面的代码&#xff0c;你能看出错误吗 class A { public:void fun(){}}; int main() {A a;void (A:: * p)() &A::fun;(*p)(); } 这段代码在调用成员函数时存在问题。正确的方式是使用对象来调用成员函数&#xff0c;而不是通过指针。以下是修正后的代码&#xff1a…

【JavaScript】表单校验

input中允许输入年或年月或年月&#xff0c;即 2023 或 2023-09 或 2023-09-11 pattern:/(^[1-2][0-9][0-9][0-9]-([1][0-2]|0?[1-9])-([12][0-9]|3[01]|0?[1-9])$)|(^[1-2][0-9][0-9][0-9]-([1][0-2]|0?[1-9])$)|(^[1-2][0-9][0-9][0-9]$)/只允许填入英文,数字,下划线和 - …

【Lustre相关】应用部署-02-Lustre软件源码编译

文章目录 一、前言二、编译说明1、配置yum源2、升级内核3、安装依赖3、源码编译 三、Q&A1、/usr/bin/ld: cannot find -lxxxa、问题说明b、原因分析c、解决措施 2、Deprecated feature: REMAKE_INITRDa、问题说明b、解决措施 3、源码编译安装lustre-zfs软件包后&#xff0c…

JAVA基础进阶(十一)

一、创建线程的三种方式 Java语言中是用Thread类来表示线程&#xff0c;线程的创建和开启都是通过Thread类来实现的。 继承Thread类重写run方法。 调用线程对象的start()方法启动线程&#xff08;启动后还是执行run方法的&#xff09;,而不是调用创建的子类对象的run()方法。…

MSUSB30模拟开关可Pin to Pin兼容FSUSB30/SGM7222

MSUSB30/MSUSB30N 是一款高速、低功耗双刀双掷 USB 模拟开关芯片&#xff0c;其工作电压范围是1.8V 至5.5V。可Pin to Pin兼容FSUSB30/SGM7222。其具有低码间偏移、高通道噪声隔离度、宽带宽的特性。 MSUSB30/MSUSB30N 主要应用范围包括&#xff1a;具有 USB2.0 接口的手持设备…

Linux “grep“ 命令

1. 目标 本文主要介绍 Linux "grep" 命令&#xff1a;用于查找文件里符合条件的字符串或正则表达式。 2. grep 命令 "grep" 命令的基本语法是&#xff1a; grep [options] pattern [files]pattern - 表示要查找的字符串或正则表达式。 files - 表示要查…

shared_ptr子类指针转换成父类指针

假设有如下应用场景: class Base { public:void addChild(std::shared_ptr<Base>& child){...} }class Derived : public Base {}int main() {Base a;std::shared_ptr<Derived> b std::make_shared<Derived>();a.addChild(b); // Error } 该代码中声…

Response(Http协议连载)

Response对象 功能&#xff1a; 设置响应消息 设置响应行 格式&#xff1a;HTTP/1.1 200 ok 设置状态码&#xff1a;setStatus(int sc) 设置响应头 设置头&#xff1a;setHeader(String name,String value); 设置响应体 使用步骤&#xff1a; 获取输出流 字符输出流&#xff…

[UGUI]实现从一个道具栏拖拽一个UI道具到另一个道具栏

在Unity游戏开发中&#xff0c;实现UI道具的拖拽功能是一项常见的需求。本文将详细介绍如何使用Unity的UGUI系统和事件系统&#xff0c;实现从一个道具栏拖拽一个UI道具到另一个道具栏的功能。 一、准备工作 首先&#xff0c;你需要在Unity中创建两个道具栏和一些UI道具。道具…

事件机制?

事件流&#xff1a; 描述的页面接收事件的顺序。先进行事件捕获 到达目标元素 在进行事件冒泡 分为事件捕获和事件冒泡 事件冒泡&#xff1a;从具体元素从内向外依次触发事件 从下面这个小案例可以清楚了解什么是事件冒泡 <!DOCTYPE html> <html lang"en"…

C++ -- 每日选择题 -- Day2

第一题 1. 下面代码中sizeof(A)结果为&#xff08;&#xff09; #pragma pack(2) class A {int i;union U{char str[13];int i;}u;void func() {};typedef char* cp;enum{red,green,blue}color; }; A&#xff1a;20 B&#xff1a;21 C&#xff1a;22 D&#xff1a;24 答案及解析…

leecode 回文数

给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&#xff0c;而…

Linux 挂载文件系统为可读写 mount -uw / 和 mount -o remount,rw /

Linux 挂载文件系统为可读写 mount -uw / 和 mount -o remount,rw / 在挂载文件系统为可读写时&#xff0c;我发现一个问题&#xff0c;有时用mount -uw /就可以把文件系统挂载成可写的状态。但有时就会发生 “read-only file system” 的错误&#xff0c;这时我用mount -o re…

智能优化算法应用:基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于纵横交叉算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.纵横交叉算法4.实验参数设定5.算法结果6.参考…