[ExecuteInEditMode] 和 [RequireComponent(typeof(UIRoot))]理解
/*
当我们为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 添加组件菜单项
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 自定义菜单项
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] 和 [RequireComponent(typeof(UIRoot))]理解相关推荐
- 2d shader unity 阴影_Unity中实现2D光照系统
在一些 2D 游戏中引入实时光影效果能给游戏带来非常大的视觉效果提升,亦或是利用 2D 光影实现视线遮挡机制.例如 Terraria, Starbound. 2D 光影效果需要一个动态光照系统实现, ...
- Unity NGUI 网络斗地主 -界面制作
Unity NGUI 网络斗地主 -界面制作 源文件在群(63438968群共享!) @灰太龙 这一节说一下NGUI的界面摆放,并且教会大家使用NGUI的自适应功能! 在这里感谢@Gamer,是他给我 ...
- Unity3D Editor 编辑器简易教程
Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...
- Unity中使用RequireComponent,没有添加上组件
using UnityEngine; using System.Collections;[RequireComponent(typeof(MeshFilter), typeof(MeshRendere ...
- container_of深入理解
container_of在linux头文件kernel.h中定义,如下: 14#ifndef offsetof15#define offsetof(TYPE, MEMBER) ((size_t) &a ...
- Linux内核中container_of宏的理解
对 typeof 的理解: 实际上, typeof 并不是宏定义,它是GCC的关键字,是GCC特有的特性.如果只知道一个变量的名字要得到其类型,并不是宏定义能够完成的,这需要编译时的信息.所以,typ ...
- Unity3D脚本依赖RequireComponent(自动添加关联的脚本)
[RequireComponent (typeof(XXXX))] 其中XXXX为依赖的脚本,或者Unity组件(理论上都算作脚本) 这样,当你挂这个脚本时,XXXX脚本也被挂上去了
- [Unity3D]Script 脚本所有编译器属性详解
Script属性是基于IDE的一系列编译器属性 JS中用 @script 属性方法() 访问,c#中用 [属性方法()] 访问. 一共就只有9种属性访问方式: AddComponentMenu ...
- Unity3d中的属性(Attributes)整理【转载】
Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了.其它倒没什么需要注意的.本文将所有运行属性过一遍罢了. using UnityEngine; using ...
最新文章
- linux刷新挂载信息,Linux系统下如何挂载FAT32的U盘
- Python基础 2
- 找不到媳妇给愁的。。。
- linux某些汉字乱码,Linux汉字乱码解决办法
- mysql 导入导出 优化_mysql数据导入导出与数据表优化
- java 月份_java+javascript获得两个日期之间的所有月份
- thuinkphp5 input('post.arr1')接收数组出现:variable type error:array
- C语言学习笔记--函数
- MySQL的快速修复
- 【阙值分割】基于matlab粒子群算法自适应多阈值图像分割【含Matlab源码 1459期】
- require smarty.class.php 报错,Smarty SSTI
- 《电力电子技术》王兆安 第二章
- 3d打印英语文献_3D打印模型在腹腔镜肝胆微创手术术前培训中的应用
- 计算机进行定理的自动证明属于,使用计算机进行定理的自动证明,属于计算机在()应用领域的应用...
- 基于matlab的车牌定位算法设计与实现,原创】基于matlab的汽车牌照识别系统设计与实现...
- html如何转换为母版页,如何在模板中指定/或取消母版页
- linux中pid gid tgid tid的区别和联系
- 逆商之CORE和LEAD
- java ice c_ZeroC ICE之旅------java
- ps—人物夸张的漫画
热门文章
- 《前端》swal()方法
- ipxe服务器搭建笔记-ipxe基本语法
- 广州专科计算机学校录取分数线,广东多少分能上大专,广东大专院校最低分数线...
- 期货开户每日无负债结算制度
- jpg,png,区别
- 云原生社区最新力作《深入理解 Istio》出版
- 周末就静静地看机器人做家务,好吗?
- 高德地图相关api使用计算两点地理坐标之间的距离
- python安装pyinstaller模块失败_PyInstaller缺少pyfiglet包的模块错误
- Python如何绘制误差直方图?曲线的阴影图?shade range graph