Unity3d中的属性(Attributes)

Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了。

using UnityEngine;

using System.Collections;

0.Property Attributes变量属性(放在方括号内变量申明前)(常用)

1/ Range(min,max)

如: [SerializeField, Range(0, 5)]

int count;

如: [SerializeField, Range(0,5)]

int[] counts;

2/ Multiline 多行

如: [Multiline]

public string b;

3/ TextArea 文本区域

可以设置的最大值和最小值的行数

如: [TextArea]

public string c;

4/ ContextMenu上下文菜单

如: [ContextMenu("Hello World!")]

void HelloWorld()

{

Debug.Log("Hello World!");

}

5/ ContextMenuItem(右击变量调用方法)

如:[ContextMenuItem("Resetvalue","resetValue")]

public int e=100;

public void resetValue(){

e=50;

     }

6/ Head("This is a variable") 头显示

7/ Space(5)

设置字段与字段之间的空间

8/ [Tooltip("this is a nasha!")]

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

1.AddComponentMenu 添加组件菜单

这函数只是起方便用,原本的脚本(组建)都会在“Component/Script”菜单下,在类之前声明一下这个,它便可以出现在"Componet"菜单下的任何位置。说明指的是要重启U3D才能显示,不过测试貌似直接可以显示。

[AddComponentMenu("MyPhysic/PhysicType")]

public class PhysicType: MonoBehaviour

{

}

2.ContextMenu 上下文菜单

这个译名我觉得很不自然,其实上下文算是啥东西……这个函数是在Inspector的脚本中加一个触发事件,就是删除脚本重置脚本按钮的那个小拉菜单中,具体很难说清位置,所以我截了个图。

public class Attributes : MonoBehaviour {

[ContextMenu("Hello World!")]

void HelloWorld()

{

Debug.Log("Hello World!");

}

}

3.ExecuteInEditMode 在Editor模式下运行

跟名字一样,在编辑器中运行。不过有三种函数的调用方式。

a- "Update()" is only called when something in the scene changed.

b- "OnGUI()" is called when the Game View recieves an Event.

c- "OnRenderObject()" and the other rendering callback functions are called on every repaint of the Scene View or Game View.

[ExecuteInEditMode]

public class ExecuteInEditModeTest: MonoBehaviour

{

private Vector3 vec_Rotation = new Vector3(0.0f, 0.5f, 0.0f);

//Rotate all the time

void OnRenderObject()

{

transform.Rotate(vec_Rotation);

}

}

4.HideInInspector 在检视面板中隐藏

public class HideInspectorTest : MonoBehaviour

{

[HideInInspector]

public Transform m_Target;

void Start()

{

m_Target = GameObject.Find("test").transform;

}

}

5.RequireComponent 必须要有相应的组建

加入一个组建之前必须存在另一个相应的组建,若没有则自动创建。这个在项目中非常有必要用到,尤其是项目人员比较多的时候(大于三四个)。

[RequireComponent (typeof (Rigidbody))]

public class RequireComponentTest : MonoBehaviour {

void FixedUpdate()  {

rigidbody.AddForce(Vector3.up);

}

}

6.NonSerialized 不被序列化

不被序列化该变量,且不显示在检视面板中。

public class Test {

[System.NonSerialized]

public int i_Helloword = 5;

}

7.Serializable 可序列化

这个属性可以让子类(继承类)的变量属性显示在检视面板中,也能序列化它。(JS的话完全不需要这个属性。)

//SerializableTest.cs

[System.Serializable]

public class SerializableTest

{

public int p = 5;

public Color c = Color.white;

}

//SerializableTest2.cs

public class SerializableTest2 : MonoBehaviour

{

public SerializableTest test;

}

8.SerializeField 序列化域(强制序列化)

这里写得比较清楚,可以将私有变量序列化,将U3D的内建变量序列化等。

转载于:https://www.cnblogs.com/caymanlu/p/5722581.html

Unity属性(Attributes)相关推荐

  1. Unity3d中的属性(Attributes)整理【转载】

    Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了.其它倒没什么需要注意的.本文将所有运行属性过一遍罢了. using UnityEngine; using ...

  2. iOS基础 - 文本属性Attributes

    NSKernAttributeName: 调整字句 kerning 字句调整 NSFontAttributeName : [UIFont systemFontOfSize:_fontSize] 设置字 ...

  3. Unity面板显示中文属性

    虽然对于程序来说,一般习惯用英文命名,但有时身在公司,总是需要和策划协作的,他们可能看不懂一些英文变量,所以为了方便交流,我抽空研究了下Unity属性面板中文化的问题. 有两种方法可以实现中文属性名: ...

  4. unity 编辑器存档_Unity教程 | 自制简易的游戏存档系统

    原标题:Unity教程 | 自制简易的游戏存档系统 本文将为大家分享如何在Unity中实现简单的游戏存档系统,其中不会包含太多实际的代码,仅介绍在制作过程中需要考虑与解决的问题.该系统由一个学生团队为 ...

  5. JavaScript window.document的属性、方法和事件小结

    javascript中window.document的属性.方法和事件的总结,有需要的朋友可参考一下本文章. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的 ...

  6. Unity 4.3 2D 教程:新手上路

    这篇文章译自 Christopher LaPollo 先生的 Unity 4.3 2D 教程的第一部分 Unity 4.3 2D Tutorial: Getting Started 感谢这套优秀教程的 ...

  7. 一文说通C#的属性Attribute

    属性Attributes这个东西,用好了可以省N多代码.   一.属性 属性Attributes在C#中很常用,但事实上很多人对这个东西又很陌生. 从概念上讲,属性提供的是将元数据关系到元素的一种方式 ...

  8. 我的世界服务器物品属性,属性 - Minecraft Wiki,最详细的官方我的世界百科

    属性(Attributes)是生物和玩家身上的增益/减益特性系统.属性也存在修饰符(Modifiers)中,用于调整属性的强度. 属性应用[] 当应用到一个物品,一个物品的修饰符将增加或减少以修正相应 ...

  9. dom属性和html属性_HTML属性

    dom属性和html属性 Attributes are used to provide additional information of a tag such as it's alignments, ...

  10. JavaScript之DOM对象(Node结点属性、导航属性、页面查找)

    文章目录 DOM与Node节点 自身属性 导航属性 页面查找 DOM与Node节点 1.DOM的概念 DOM 是 W3C(万维网联盟)的标准,DOM 定义了访问 HTML 和 XML 文档的标准. W ...

最新文章

  1. AJAX Control Toolkit 30930
  2. wringPi 初始化GPIO 为上拉_你彻底弄清GPIO内部结构和各种模式了吗?
  3. java 队列_用Java实现队列
  4. Qt Creator编写代码
  5. 2020蓝桥杯省赛---java---B---8(走方格)
  6. 加入域时出现以下错误:找不到网络路径
  7. c语言是高级编程语言吗,C语言是高级编程语言吗?
  8. 微信公众号全局返回码
  9. java毕业设计投标文件在线制作系统mybatis+源码+调试部署+系统+数据库+lw
  10. 飞机选座——附:东航320选坐攻略
  11. 程序员VS产品经理的世纪之争
  12. C# dgv自动排序后,各种样式设定无效的解决办法
  13. n条线段可以组成多少种三角形
  14. 前后端实现Base64格式的传参及转换
  15. 10 令牌颁发 OAuth2TokenEndpointFilter
  16. 记一次IOS与H5-SPA页面的交互经验
  17. MongoDB同步到ES
  18. TokenGazer | DCEP vs Libra:全球化背景下的数字货币竞争
  19. 解析Linux中的VFS文件系统机制
  20. 宋维刚老师词霸天下38000词汇思维导图使用指南

热门文章

  1. Keil uVision5开发一个基于LPC17XX系列芯片的工程文件
  2. http://blog.csdn.net/wsj18808050/article/details/62226574
  3. 为什么你应该学习编程?
  4. 直连网线和交叉网线的线序
  5. 大龄程序员的出路究竟在何处?从369个过来人问答贴里,我们得到了答案
  6. ABBYY最新官方免费序列号激活码序列号密钥下载分享
  7. 知物由学 | Android 模拟点击研究,如何突围“黑灰产”的自动化作弊?
  8. 应用软件学习心得之mapgis功能学习
  9. 一位美女交易员的日内交易方法(值得一看)
  10. 如何用burpsuite和手机模拟器给apk抓包