使用 Unity 的C#语言 ,利用属性(Attribute)来类定义和变量定义或区分其他的变量,您可以设置一种特殊行为

例如,您添加[SerializeField]属性变量,私有变量标识序列化。

[SerializeField]

int  计数;

序列化您'的值是存储到场景和预制体。因为值存储在meta元数据中,在Inspector检查器中设置的值。

你还可以强制指定的组件,对象要被附加组件,您将添加[RequireComponent] * 2 * 3 。

[RequireComponent(typeof(Rigidbody))]

public classAttributeSample : MonoBehaviour {

}

你可以使用属性时,设置特殊的变量命名约定以外的其他行为。unity使用属性,设置特约编辑和方法的行为。

规则属性

属性放置在[below. * * *]的窗体变量和类定义之前。如果你想要设置多个属性,以逗号分隔 [* * * .  * * *]的写入操作。

例如,如果您想要设置的 SerializeField 和范围,如描述属性。

[SerializeField, Range(0, 5)]

int count;

属性适用于立即定义的所有变量。例如,如果在一个声明中定义多个变量

[SerializeField, Range(0,5)]

int count3, count4;

以及适合数组,是适用于所有的变量,使其包含。

[SerializeField, Range(0,5)]

int[] counts;

统一标准属性

要扩展Inspector检查器属性

扩展的Inspector检查器行为选择字段。

·SerializeField

private或protected值的序列化。

如果您想要在场景视图中进行编辑,它非常有用。

[SerializeField]

int count;

·TooltipAttribute

如果鼠标光标是在字段上,显示的说明文本。

[SerializeField,TooltipAttribute("説明文")]

int count5;

·SpaceAttribute

设置字段和字段之间的空间。

[SerializeField,Space(15)]

intcount6;

·HeaderAttribute

设置标题,就是字段的头部。需要注意,因为标题给予所有项目和将 HeaderAttribute 添加到列表中

[SerializeField,HeaderAttribute ("Title")]

int count7;

·MultilineAttribute

设置多行输入的文本字段。

[SerializeField, MultilineAttribute(2)]

string message1;

·TextAreaAttribute

设置多行输入的文本字段。您可以设置的最大值和最小值的行数。

[SerializeField,TextAreaAttribute(2, 5)]

string message2;

·HideInInspector

这种public序列化字段从Inspector检查器隐藏。如果隐藏的参数、扩展的编辑器中内置的参数和引用关系。

请注意不能从检查器编辑,HideInInspector 用于构建unity场景隐藏一个序列化的值,当声明一个字段变量初始化也将忽略。

使用NonSerializable的序列化和HideInInspector。

[HideInInspector]

public int count8;

·NonSerializable

序列化并不妨碍您将从检查器中消失。

[System.NonSerialized]

public int count9;

·FormerlySerializedAs

当您更改该变量的名称,保持信息的修改。

unity保持信息字段字段名称中,字段名称被更改和销毁值。当您可以指定FormerlySerializedAs此信息将被带到目标变量的名称。

public float first;

首先,所有的变量first。我试着改变这第二个变量中。并添加 FormerlySerializedAs 属性,原" first "。

[FormerlySerializedAs("first")]

public float second;

即使您更改中的变量名称的值first在此变量的名称second之后,将保留。如果你在其他场景中使用可迁移要删除 FormerlySerializedAs 和各种的麻烦,请注意。

与组件的行为相关联的属性

·RequireComponentAttribute

添加组件的行为附加到对象。例如,刚体等......

[RequireComponent(typeof(Rigidbody))]

public classAttributeSample : MonoBehaviour {

}

·DisallowMultipleComponent

不能将几个组件添加到同一个对象(就是不能重复)。

[DisallowMultipleComponent]

public classAttributeSample : MonoBehaviour {

}

·ContextMenuAttribute

我想要从组件的上下文菜单(单击右键)调用方法。例如,如果您在运行时做不被动设置很有用。

[ContextMenu("Init")]

void Init(){

}

影响游戏的行为的属性

·RPC

在执行 RPC 时,它使用。用于在 NetworkView 中的光子与沟通。此属性是跨网络调用方法。

[RPC]

void Damage(){

}

·ImageEffectTransformsToLDR

似乎转换HDR和 LDR 。如何使用未知。

·ImageEffectOpaque

使 OnRenderImage 透明呈现。

[ImageEffectOpaque]

void OnRenderImage(RenderTexture source, RenderTexture destination){

}

·MonoPInvokeCallbackAttribute

C#(托管代码) 中注册方法可以从c + +(非托管代码) 调用。

·DLLImport

C + +(非托管代码) 的方法可从c#调用。

[DllImport("DLLName")]

private static extern void MethodName();

用编辑器的行为相关联的属性

是可以影响的场景从编辑器的顶部的属性。

·AddComponentMenu

设置路径,当指定 AddComponent 按钮和菜单栏构件。如果你不做你的Script /Namespace 和组件的名称。

[AddComponentMenu("Sample/TestCode")]

public class AttributeSample: MonoBehaviour{

}

·ExecuteInEditMode

状态不玩游戏等组件事件更新并开始工作。用来验证是否要工作在运行时的行为。

[ExecuteInEditMode]

public classAttributeSample : MonoBehaviour {}

ExecuteInEditMode操作热点像代码更改为序列化的形式可以是值是序列化→→汇编和注射,不能破坏价值和可能。正因为如此,注意力是需要,因为需要发挥出来的场景将取决于静态代码或初始化开始等......

例如是前 3 名,代码更改和运行编译下面的代码的代码更改,并打印 0。

static int sCount = 0;

void Start(){

sCount = 3;

}

void Update(){

Debug.Log("export:" + sCount);

}

·SelectionBaseAttribute

选择您选择在场景视图中使用此属性的组件。

[SelectionBase]

public class AttributeSample :MonoBehaviour {}

例如授予的授予对父对象的渲染器模型的SelectionBaseAttribute 选定在场景视图的模型时,选择场景视图组件所选的父对象上,当你选择时。

是到游戏对象的 SelectionBase对象,如果不是根据行为给予的批。格兰特获取未授予一个球体,但游戏物体的对象

使用Unity3d和C#的一些属性来设置特殊行为的更多相关文章

  1. Unity3d发布成exe项目后的设置(全屏自适应屏幕大小)

    原地址:http://blog.sina.com.cn/s/blog_697b1b8c0101gd46.html 1.  去除启动exe项目时出现的画面窗口 File ☞ Build Settings ...

  2. 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项

    错误提示: 配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项 配置文件 \\?\D:\www\abc\web.config 出现 ...

  3. 问题.NET--win7 IIS唯一密钥属性“VALUE”设置为“DEFAULT.ASPX”时,无法添加类型为“add”的重复集合

    问题现象:.NET--win7 IIS唯一密钥属性“VALUE”设置为“DEFAULT.ASPX”时,无法添加类型为“add”的重复集合 问题处理: 内容摘要:    HTTP 错误 500.19 - ...

  4. 介绍 Visifire 常用属性的设置

    转载自http://www.cnblogs.com/xinyus/p/3422198.html 主要介绍 Visifire 常用属性的设置,用来生成不同样式的图例 设置Chart的属 //设置titl ...

  5. DBGrid 各属性的设置

    在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观 ...

  6. yii2布局选择与属性标签设置

    Yii选择布局的方法: 1. 通过控制器成员变量设置: public $layout = false;//不使用布局 public $layout = 'main';//设置使用的布局文件(@app/ ...

  7. 使用elementUI的时候,使用Upload 上传的时候,使用 list-type 属性来设置文件列表的样式,before-upload方法失效

    最近在做项目的时候,使用elementUI的时候,使用Upload 上传的时候,before-upload方法失效. 情况下:使用 list-type 属性来设置文件列表的样式. 最终的优化之后:(演 ...

  8. 背水一战 Windows 10 (67) - 控件(控件基类): DependencyObject - CoreDispatcher, 依赖属性的设置与获取, 依赖属性的变化回调

    [源码下载] 背水一战 Windows 10 (67) - 控件(控件基类): DependencyObject - CoreDispatcher, 依赖属性的设置与获取, 依赖属性的变化回调 作者: ...

  9. Python+OpenCV图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示

    一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 ...

随机推荐

  1. Pikachu-Unsafe Filedownload(不安全的文件下载)

    不安全的文件下载概述 文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文 ...

  2. typescript-环境搭建

    这个环境比较简单 搭建 TypeScript 开发环境 什么是 compiler? less 编译器:less EcmaScript 6 编译器:babel TypeScript 编译器:typesc ...

  3. Hadoop学习之路(7)MapReduce自定义排序

    本文测试文本: tom 20 8000 nancy 22 8000 ketty 22 9000 stone 19 10000 green 19 11000 white 39 29000 socrate ...

  4. ASP.NET Identity登录原理

    https://www.cnblogs.com/jesse2013/p/aspnet-identity-claims-based-authentication-and-owin.html 如何实现登录 ...

  5. 《操作系统真象还原》ELF文件

    下面是第五章部分内容的收获. 用C语言编写内核 一直以来我们都是用汇编语言编写程序的,但接下来我们或许很少用汇编语言编写代码了,大多数都是使用C语言.为什么要这样呢?书上的解释我看的不是很懂,只能结合 ...

  6. Java_Day6(上)

    Java learning_Day6 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> 提 ...

  7. c#在类里不能使用Response解决方法

    response对应的类是HttpResponse,  在System.Web 命名字间里,   如果你在类中要使用   Response 的话,   需要使用System.Web.HttpConte ...

  8. 牛客寒假6-I 导航系统

    链接:https://ac.nowcoder.com/acm/contest/3007/I来源:牛客网 题目描述 小 Q 所在的国家有 N 个城市,城市间由 N-1 条双向道路连接,任意一对城市都是互 ...

  9. PAT (Basic Level) Practice (中文)1041 考试座位号 (15 分)

    每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...

  10. ArcMap 导入 CGCS2000 点坐标数据

    最近开始用 ArcGIS 做管网项目,第一步就接触到 CGCS2000 坐标系数据,要把管网的数据给导入进来, 一开始不知道是哪个坐标系,试了半天,都偏到国外去了,最后在一篇博客里找到了类似的管网数据 ...