/*
  当我们为MonoBehavior定义了[ExecuteInEditMode]后,我们需要关心Awake和Start在编辑器中的执行状况。
  1、当该MonoBehavior在编辑器中被赋于给GameObject的时候,Awake, Start 将被执行。
  2、当Play按钮被按下游戏开始以后,Awake, Start 将被执行。
  3、当Play按钮停止后,Awake, Start将再次被执行。
  4、当在编辑器中打开包含有该MonoBehavior的场景的时候,Awake, Start将被执行。
 */
[ExecuteInEditMode]  
[RequireComponent(typeof(UIRoot))]

//[RequireComponent (typeof (ClassName))] 就是在你把被这句话标记的类拖到(或者AddComponent)GameObject上时,自动再给你加上“ClassName”这个类

参考地址: [Unity3D]脚本中Start()和Awake()的区别http://www.cnblogs.com/xpvincent/p/3178042.html

http://tieba.baidu.com/p/2820568128

借用原文

[置顶] unity3D 功能脚本备忘【2】(属性)

原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 Unity3D引擎技术交流QQ群:【119706192】本文链接地址: unity3D 功能脚本备忘【2】(属性)

  • unity3D 功能脚本备忘【1】(方法)
-------------------------------------------------------------割-------------------------------------------------------------------

编译器属性

属性 介绍 用例
AddComponentMenu 在Component菜单中添加新的菜单项 [AddComponentMenu("Duan/Script/TestScript")]
ContextMenu 在当前脚本的组件中添加右键菜单内容  
ExecuteInEditMode 让当前脚本可以在运行模式中实时更新修改  
HideInInspector 是变量在检测时不被显示,但是会被实例化 [HideInInspector]public int a;
NonSerialized  标记一个变量不会被序列化?  
RPC    
RenderBeforeQueues 附加一个自定义渲染 在整个引擎渲染队列之前  
RequireComponent 强制添加一个组件,(限定一定要有这个个组件),并且不能删除 [RequireComponent(typeof(Rigidbody))]
Serializable 序列化一个类         (js继承Object类默认就是会被序列化)  
SerializeField 序列化一个字段 (当unity序列你的脚本,它只会序列化公共字段。如果除了那些也想序列化私有字段,你可以添加SerializeField属性。) [SerializeField]private int a;

AddComponentMenu 添加组件菜单项

在编辑器添加一个用于添加组件的菜单项 ,将拥有该属性的脚本添加到选中的物体上。(用法:[AddComponentMenu("Duan/Script_Mobile/BreakAndEnd")])
例:在当前脚本中加入AddComponentMenu属性 ,选中某物体后 ,将拥有该属性的脚本添加到选中的物体上。
using UnityEngine;
using System.Collections;/// <summary>
/// 按返回退出应用
/// </summary>
[AddComponentMenu("Duan/Script_Mobile/BreakAndEnd")]
public class BreakAndEnd : MonoBehaviour {// Update is called once per framevoid Update () {endGame();}void endGame(){if ( Application.platform == RuntimePlatform.Android &&(Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home)) ) {//Home键好像不一定能用。。默认就是把程序挂到后台<span style="color: white; background-color: rgb(136, 0, 0);">,</span>并不是退出。 Application.Quit();   }}
}

MenuItem 自定义菜单项

在编辑器添加一个自定义菜单项(用法:[MenuItem("DuanEditor/init Scenes")])
例:菜单项启动一个自定义的编辑器窗口(EditorWindow ) ,该窗口试用OnGUI布局。
using UnityEngine;
using System.Collections;
using UnityEditor;public class initScenes : EditorWindow
{[MenuItem("DuanEditor/init Scenes")]static void Init(){initScenes window = (initScenes)EditorWindow.GetWindow(typeof(initScenes));window.Show();}void OnGUI() {if (GUI.Button(new Rect(10<span style="color: white; background-color: rgb(136, 0, 0);">,</span>10<span style="color: white; background-color: rgb(136, 0, 0);">,</span>200<span style="color: white; background-color: rgb(136, 0, 0);">,</span>20)<span style="color: white; background-color: rgb(136, 0, 0);">,</span>"hello world")){Debug.Log("hello world");}}
}

ExecuteInEditMode 编辑模式调用Update

[ExecuteInEditMode]写在类上方来通知编译器,该类的OnGUI和Update等函数在编辑模式也也会被调用

[ExecuteInEditMode] 和 [RequireComponent(typeof(UIRoot))]理解相关推荐

  1. 2d shader unity 阴影_Unity中实现2D光照系统

    在一些 2D 游戏中引入实时光影效果能给游戏带来非常大的视觉效果提升,亦或是利用 2D 光影实现视线遮挡机制.例如 Terraria, Starbound. 2D 光影效果需要一个动态光照系统实现, ...

  2. Unity NGUI 网络斗地主 -界面制作

    Unity NGUI 网络斗地主 -界面制作 源文件在群(63438968群共享!) @灰太龙 这一节说一下NGUI的界面摆放,并且教会大家使用NGUI的自适应功能! 在这里感谢@Gamer,是他给我 ...

  3. Unity3D Editor 编辑器简易教程

    Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...

  4. Unity中使用RequireComponent,没有添加上组件

    using UnityEngine; using System.Collections;[RequireComponent(typeof(MeshFilter), typeof(MeshRendere ...

  5. container_of深入理解

    container_of在linux头文件kernel.h中定义,如下: 14#ifndef offsetof15#define offsetof(TYPE, MEMBER) ((size_t) &a ...

  6. Linux内核中container_of宏的理解

    对 typeof 的理解: 实际上, typeof 并不是宏定义,它是GCC的关键字,是GCC特有的特性.如果只知道一个变量的名字要得到其类型,并不是宏定义能够完成的,这需要编译时的信息.所以,typ ...

  7. Unity3D脚本依赖RequireComponent(自动添加关联的脚本)

    [RequireComponent (typeof(XXXX))] 其中XXXX为依赖的脚本,或者Unity组件(理论上都算作脚本) 这样,当你挂这个脚本时,XXXX脚本也被挂上去了

  8. [Unity3D]Script 脚本所有编译器属性详解

    Script属性是基于IDE的一系列编译器属性 JS中用 @script 属性方法() 访问,c#中用 [属性方法()] 访问. 一共就只有9种属性访问方式: AddComponentMenu     ...

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

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

最新文章

  1. linux刷新挂载信息,Linux系统下如何挂载FAT32的U盘
  2. Python基础 2
  3. 找不到媳妇给愁的。。。
  4. linux某些汉字乱码,Linux汉字乱码解决办法
  5. mysql 导入导出 优化_mysql数据导入导出与数据表优化
  6. java 月份_java+javascript获得两个日期之间的所有月份
  7. thuinkphp5 input('post.arr1')接收数组出现:variable type error:array
  8. C语言学习笔记--函数
  9. MySQL的快速修复
  10. 【阙值分割】基于matlab粒子群算法自适应多阈值图像分割【含Matlab源码 1459期】
  11. require smarty.class.php 报错,Smarty SSTI
  12. 《电力电子技术》王兆安 第二章
  13. 3d打印英语文献_3D打印模型在腹腔镜肝胆微创手术术前培训中的应用
  14. 计算机进行定理的自动证明属于,使用计算机进行定理的自动证明,属于计算机在()应用领域的应用...
  15. 基于matlab的车牌定位算法设计与实现,原创】基于matlab的汽车牌照识别系统设计与实现...
  16. html如何转换为母版页,如何在模板中指定/或取消母版页
  17. linux中pid gid tgid tid的区别和联系
  18. 逆商之CORE和LEAD
  19. java ice c_ZeroC ICE之旅------java
  20. ps—人物夸张的漫画

热门文章

  1. 《前端》swal()方法
  2. ipxe服务器搭建笔记-ipxe基本语法
  3. 广州专科计算机学校录取分数线,广东多少分能上大专,广东大专院校最低分数线...
  4. 期货开户每日无负债结算制度
  5. jpg,png,区别
  6. 云原生社区最新力作《深入理解 Istio》出版
  7. 周末就静静地看机器人做家务,好吗?
  8. 高德地图相关api使用计算两点地理坐标之间的距离
  9. python安装pyinstaller模块失败_PyInstaller缺少pyfiglet包的模块错误
  10. Python如何绘制误差直方图?曲线的阴影图?shade range graph