MonoBehaviour的事件和具体功能总结

原地址:http://blog.csdn.net/dingxiaowei2013/article/details/26215577

苦于Visual Studio 2013没有对MonoBehaviour的行为做出智能提示,写个函数都要全手打,记性好的将就着手打,脑残一点的就复制粘贴,我就是后者。我曾经把MonoBehaviour的所有事件写成代码片段,后来快捷键全乱了,根本就记不住,后来就放弃了。做人还是老实点,我就整理了一份,能记住的就尽量记住吧。

--------------------------------------------

精简版(按字母顺序)

Awake 唤醒

CancelInvoke 取消调用

FixedUpdate 固定更新

InvokeRepeating 重复调用

Invoke 调用

IsInvoking 是否调用

LateUpdate 晚于更新

OnApplicationFocus当程序焦点

OnApplicationPause当程序暂停

OnApplicationQuit 当程序退出

OnBecameInvisible 当不可见

OnBecameVisible 当可见

OnCollisionEnter 当进入碰撞

OnCollisionExit 当退出碰撞

OnCollisionStay 当逗留碰撞

OnConnectedToServer当连接到服务器

OnControllerColliderHit当控制碰撞器碰撞

OnDestroy 当销毁

OnDisable 当不可用

OnDisconnectedFromServer当从服务器断开连接

OnDrawGizmosSelected当选择时绘制Gizmos

OnDrawGizmos 当绘制Gizmos

OnEnable 当可用

OnFailedToConnectToMasterServer当连接到主服务器失败

OnFailedToConnect 当连接失败

OnGUI 当界面

OnJointBreak 当关节断开

OnLevelWasLoadedOnLevelWasLoaded

OnMasterServerEvent当主服务器事件

OnMouseDown 当鼠标按下

OnMouseDrag 当鼠标拖动

OnMouseEnter 当鼠标进入

OnMouseExit 当鼠标退出

OnMouseOver 当鼠标经过

OnMouseUpAsButton 当鼠标作为按钮弹起时

OnMouseUp 当鼠标弹起

OnNetworkInstantiate当网络实例

OnParticleCollision当碰撞粒子

OnPlayerConnected 当玩家连接

OnPlayerDisconnected当玩家断开连接

OnPostRender 当渲染之后

OnPreCull 当消隐之前

OnPreRender 当渲染之前

OnRenderImage 当渲染图片

OnRenderObject 当渲染物体

OnSerializeNetworkView当序列化网络视图

OnServerInitialized当服务器初始化

OnTriggerEnter 当进入触发器

OnTriggerExit 当退出触发器

OnTriggerStay 当逗留触发器

OnWillRenderObject当渲染物体之前

print 打印

Reset 重置

StartCoroutine 开始协同程序

Start 开始

StopAllCoroutines 停止所有协同程序

StopCoroutineStopCoroutine 停止协同程序

Update 更新

useGUILayout 使用界面布局

--------------------------------------------

详细版 (按执行顺序)

Awake

当前控制脚本实例被装载的时候调用。一般用于初始化整个实例使用。

Start

当前控制脚本第一次执行Update之前调用。

Update

每帧都执行一次。这是最常用的事件函数。

FixedUpdate

每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。

LateUpdate

在每帧执行完毕调用,他是在所有update结束后才掉,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

Reset

这个是编辑器模式情况下你点击reset按钮(如果有的话)调用的,你可以在这里做调试的初始化工作。

OnApplicationFocus

当玩家获得或失去焦点时发送给所有游戏物体,可以作为协同程序,在函数中使用yield语句即可。

OnApplicationPause

当玩家暂停时发送到所有的游戏物体,可以作为协同程序,在函数中使用yield语句即可。

OnApplicationQuit

在应用退出之前发送给所有的游戏物体。当用户停止运行模式时在编辑器中调用。当web被关闭时在网络播放器中被调用。

OnBecameInvisible

当renderer(渲染器)在任何相机上都不可见时调用OnBecameInvisible。

OnBecameVisible

当renderer(渲染器)在任何相机上可见时调用OnBecameVisible。

OnCollisionEnter

当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionEnter将被调用。相对于OnTriggerEnter,OnCollisionEnter传递的是Collision类而不是Collider。Collision包含接触点,碰撞速度等细节。如果在函数中不使用碰撞信息,省略collisionInfo参数以避免不必要的运算。注意如果碰撞体附加了一个非动力学刚体,只发送碰撞事件。

OnCollisionExit

当此collider/rigidbody停止触发另一个rigidbody/collider时,OnCollisionExit将被调用。

OnCollisionStay

当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。

OnConnectedToServer

当你成功连接到服务器时,在客户端调用。

OnDisconnectedFromServer

当失去连接或从服务器端断开时在客户端调用。

OnFailedToConnect

当一个连接因为某些原因失败时在客户端调用。

OnFailedToConnectToMasterServer

前两个 当客户端成功连接到服务器或者断开服务器时发送此消息。

后两个 当连接失败时候触发

OnMasterServerEvent

当Master服务器发送报告时候触发。

OnNetworkInstantiate

当一个物体使用Network.Instantiate进行网络初始化时调用。这对于禁用或启用一个已经初始化的物体组件来说是非常有用的,它们的行为取决于它们是在本地还是在远端。注意: 在NetworkMessageInfo里的networkView属性不能在OnNetworkInstantiate里使用。

OnPlayerConnected

当一个新玩家成功连接时在服务器上被调用。

OnPlayerDisconnected

当一个玩家从服务器上断开时在服务器端调用。

OnControllerColliderHit

在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。它可以用来在角色碰到物体时推开物体。

OnParticleCollision

当粒子碰到collider时被调用。

这个可以用于游戏对象被粒子击中时应用伤害到它上面。这个消息被发送到所有附加到theWorldParticleCollider 的脚本上和被击中的碰撞体上。这个消息只有当你在theWorldParticleCollider 检视面板中启用了sendCollisionMessage 才会被发送。

OnDisable

当对象变为不可用或非激活状态时此函数被调用。当物体被销毁时它将被调用,并且可用于任意清理代码。当脚本编译完成之后被重加载时,OnDisable将被调用,OnEnable在脚本被载入后调用。

OnEnable

当对象变为可用或激活状态时此函数被调用。OnEnable不能用于协同程序

OnDrawGizmos

OnDrawGizmosSelected

编辑器状态时绘制Gizmos和Gizmos被选取时候触发。

注:Gizmos参见我另一篇blog,他是用与做自己的组件时候用的,比如路径点绘制之类的。

OnGUI

绘制GUI时候触发。一般在这个函数里绘制GUI菜单。

OnJointBreak

当附在同一对象上的关节被断开时调用

OnLevelWasLoaded

当一个新关卡被载入时此函数被调用

OnMouseDown

当鼠标在GUIElement(GUI元素)或Collider(碰撞体)上点击时调用OnMouseDown。这个事件将发送给 Collider 或 GUIElement 上的所有脚本。注意:此函数在iPhone上无效

OnMouseDrag

当用户鼠标拖拽GUIElement(GUI元素)或Collider(碰撞体)时调用 OnMouseDrag 。

OnMouseEnter

当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用OnMouseEnter

OnMouseExit

当鼠标移出GUIElement(GUI元素)或Collider(碰撞体)上时调用OnMouseExit。

OnMouseOver

当鼠标悬浮在GUIElement(GUI元素)或Collider(碰撞体)上时调用 OnMouseOver 。

OnMouseUp

鼠标事件,都是当鼠标和gui或者碰撞体(Collider)交互时候触发。需要说明的是drag其实就是鼠标down后up之前持续每帧都会发送此消息。

OnPostRender

这个函数仅用于宿主为摄像机的脚本。当此摄像机范围内所有渲染都完成时候触发此消息。

OnPreCull

这个函数仅用于宿主为摄像机的脚本。当此摄像机剔除了某个渲染场景时候触发此消息。(未验证)

OnPreRender

这个函数仅用于宿主为摄像机的脚本。当此摄像机开始渲染某个场景时候触发此消息。

OnRenderImage

当所有渲染完成image的postprocessing effects(只有pro版支持)后触发。

OnRenderObject

这个函数仅用于宿主为摄像机的脚本。当使用Graphics.DrawMeshNow 或者其他函数绘制自己建立的物体渲染完毕时触发。

OnSerializeNetworkView

在一个网络视图脚本中,用于自定义变量同步,它自动决定被序列化的变量是否应该发送或接收,查看下面的例子获取更好的描述。这个依赖于谁拥有这个物体,例如,所有者发送,其他物体接收。

OnServerInitialized

当Network.InitializeServer被调用并完成时,在服务器上调用这个函数。

OnTriggerEnter

当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。这个消息被发送到触发器碰撞体和刚体(或者碰撞体假设没有刚体)。注意如果碰撞体附加了一个刚体,也只发送触发器事件。

OnTriggerExit

当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit

OnTriggerStay

当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。

OnWillRenderObject

如果对象可见每个相机都会调用它。如果MonoBehaviour被禁用,此函数将不被调用。此函数在消隐过程中被调用,在渲染所有被消隐的物体之前被调用。你可以用它来创建具有依赖性的纹理并且只有在被渲染的物体可见时才更新这个纹理。举例来讲,它已用于水组件中。Camera.current将被设置为要渲染这个物体的相机。

MonoBehaviour的事件和具体功能总结

时间: 2024-10-03 14:42:15

MonoBehaviour的事件和具体功能总结的相关文章

javascript面向对象--观察者模式(为对象添加事件监听功能)

正文开始之前,有这么一个需求: >背景:宁静的夜晚,一天晚上,狗蛋(主人)睡得正香,侠盗高飞(小偷)突然造访. >事件:高飞正准备下手的时候,不料被旺财(狗)发现了,于是旺财叫了起来,狗蛋醒了,高飞逃走了. 分析需求后,可以发现有三个对象: 高飞(小偷) 旺财(狗) 狗蛋(主人) 创建对象的构造函数以及原型方法 //人的构造函数 function Person(name){ this.name=name; //首次创建实例时,为Person的原型添加共有的方法 if(!Person.proto

mysql 启动事件 启动触发器功能

事件调度器有时也可称为临时触发器(temporal triggers), 因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里. 在使用这个功能之前必须确保event_scheduler已开启,可执行 开启: ①(开启事件触发器) SET GLOBAL event_scheduler = 1; 或我们可以在配置my.ini文件 中加上 event_scheduler = 1 ②或 SET GLOBAL event_sche

mysql事件调度器功能

一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作.更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次.对于一些对数据实时性要求比较高的应用(例如:股票.赔率.比分等)就非常适合. 事件调度器有时也可称为

unity 主要事件函数及功能

Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结. Awake 当前控制脚本实例被装载的时候调用.一般用于初始化整个实例使用. Start 当前控制脚本第一次执行Update之前调用. Update 每帧都执行一次.这是最常用的事件函数. FixedUpdate 每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下

[原]排错实战——通过对比分析sysinternals事件修复程序功能异常

原调试debug排错troubleshootprocess monitorsysinternals 缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs版本也一样(打的补丁也一样).编译出来的程序在两台电脑上运行的结果就是不一样.惊不惊喜,意不意外?如果是你遇到了这种情况,你会怎么调查呢?:upside_down_face: {% note info %} 说明: 为了跟大家分享这个问题,我事后在自己的机器上重新把整个过程梳理了一遍,并保存了pro

二次事件并细化功能

开发asp.net时,很多时间,先是在网页中执行搜索,然后再对结果再二次操作其它功能.下面这个例子,先是在网页中,用户点击铵钮后,得到相关数据,然后对数据进行更新.由于得到的结果是一个数据集,显示这些数据集,我们可以使用GridView,DataList或是Repeater数据控件来显示. 创建一个逻辑类FruitCategory,它是与数据沟通,传入与输出事务. 下面,Insus.NET使用GridView来显示: 下面是xxx.aspx.cs代码的实现,超简单: 演示: 如果你不太喜欢Gri

用Jquery来实现点击事件等的功能

VS2010-使用“预先生成事件命令行”和“后期生成事件命令行”功能

xcopy /r /y $(TargetPath) $(ProjectDir)..\Bin\ xcopy /r /y $(TargetDir)$(TargetName).pdb $(ProjectDir)..\Bin\xcopy /r /y $(TargetPath) $(ProjectDir)..\Release\xcopy /r /y $(TargetDir)$(TargetName).pdb $(ProjectDir)..\Release\ xcopy /r /y $(ProjectDir

事件委托详解

基本概念 事件委托,通俗地来讲,就是把一个元素响应事件(click.keydown......)的函数委托到另一个元素: 一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应到需要绑定的元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数. 举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都傻傻地一个个去领取,还有一种方法就是把这件事情委托给宿舍长,让一个人出去拿好所有快递,然后再根据收件人一一分发