【C#】常用的一些特性
2016-01-27 11:21
405 查看
<span style="font-size:24px;">[Header("名字")] public string name = "阿黄";</span>
<span style="font-size:24px;"> //设置多行输入的文本字段。 [MultilineAttribute] public string mText;</span>
<span style="font-size:24px;">//设置多行输入的文本字段。您可以设置的最大值和最小值的行数。 [SerializeField, TextAreaAttribute(2, 5)] public string mText2;</span>
<span style="font-size:24px;">[SerializeField, Range(0, 5)] public int count; //如果鼠标光标是在字段上,显示的这是count1 [SerializeField, TooltipAttribute("这是count1")] public int count1;</span>
<span style="font-size:24px;">[ContextMenu("Init")] void Init() { Debug.Log("正在初始化"); }</span>
ExecuteInEditMode
默认状态下,MonoBehavior中的Start,Update,OnGUI等方法,需要在Play的状态下才会被执行。
这个属性让Class在Editor模式(非Play模式)下也能执行。
但是与Play模式也有一些区别。
例如:
Update方法只在Scene编辑器中有物体产生变化时,才会被调用。
OnGUI方法只在GameView接收到事件时,才会被调用。
RuntimeInitializeOnLoadMethodAttribute
此属性仅在Unity5上可用。
在游戏启动时,会自动调用添加了该属性的方法。
using UnityEngine; using System.Collections; public class Test : MonoBehaviour { [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { Debug.Log("Game loaded and is running"); } }
SerializeField
在变量上使用该属性,可以强制该变量进行序列化。即可以在Editor上对变量的值进行编辑,即使变量是private的也可以。
在UI开发中经常可见到对private的组件进行强制序列化的用法。
例子
public class TestSerializeField : MonoBehaviour { [SerializeField] private string name; [SerializeField] private Button _button; }
MenuItem
在方法上使用,可以在Editor中创建一个菜单项,点击后执行该方法,可以利用该属性做很多扩展功能。 需要方法为static。
例子:
using UnityEngine; using System.Collections; using UnityEditor; public class EditorTest : MonoBehaviour { [MenuItem("MyMenu/Create GameObject")] public static void CreateGameObject() { new GameObject("阿黄是一条好汪"); } }
相关文章推荐
- C#学习之初步理解委托、事件、匿名方法和Lambda
- C# WinForm开发系列 - WebBrowser
- C#计算时间秒数差
- C#数组
- C# 单例模版(使用where)
- C#导出Excel,并且设置Excel单元格格式,合并单元格
- c#之加加减减的优先级
- c#之类型转换
- Kinect开发(二) 基于C# WPF的Kinect开发环境配置
- 【C#】.NET提供了哪些类型来实现反射
- 跟siki老师学C#第九天(满满的都是练习)
- C#编写控制台简单聊天机器人
- C# 编译的DLL文件在其他项目中调用时,看不见注释
- C#自定义控件 绘制框
- C# List泛型转换,int,string 转字符,转数组
- WPF动画结束后的行为方式
- POPTEST老李谈Debug和Release的区别(c#)2
- C#中remoting和webservice的区别
- POPTEST老李谈Debug和Release的区别(c#) 1
- C# 该行已经属于还有一个表 的解决方法