`

MonoBehaviour的事件和具体功能总结

 
阅读更多

 

转自:http://www.unitymanual.com/blog-4057-706.html

 

MonoBehaviour的事件和具体功能总结

热度 13589 2014-5-18 14:17 |个人分类:Unity3d| 精简版快捷键程序智能字母

苦于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将被设置为要渲染这个物体的相机。
分享到:
评论

相关推荐

    Unity3d C# 实现滑动条(Slider)的拖拽开始和结束、点击等事件的拓展功能

    总结起来,Unity3D的C#编程允许开发者灵活地扩展滑动条组件的功能,通过监听和响应各种事件,我们可以实现丰富的交互效果。在`ExtendedSlider`这个示例中,我们覆盖了滑动条的拖拽开始、结束和点击事件,并提供了...

    Unity双击响应事件代码

    ### Unity双击响应事件代码详解 #### 一、引言 在Unity开发中,实现用户交互是游戏设计的重要环节之一。...在实际项目中,还需要结合具体的上下文环境对代码进行调整和完善,确保能够稳定可靠地工作。

    unity3d截图功能脚本

    ### Unity3D 截图功能脚本解析 #### 脚本概述 本文将详细介绍一个Unity3D中的截图功能脚本。...当然,在实际应用中,还可以根据具体需求对脚本进行扩展和优化,例如增加截图质量设置、调整截图保存路径等。

    unity笔记-不同物体间通信

    本文将详细介绍Unity中实现不同物体间通信的各种方法,并提供具体的代码示例,帮助开发者更好地理解和掌握这一关键技能。 #### 二、基础知识 在深入探讨之前,我们需要了解一些Unity的基础概念: 1. **GameObject...

    unity中SDK接入成功案例

    Unity中SDK的接入流程包括获取资源、导入项目、阅读文档、初始化、调用功能、处理回调和测试。通过"unity中SDK接入成功案例",我们可以了解到这一过程的具体操作。对于初学者来说,理解并实践这些步骤将极大地提升...

    unity实现下载文件

    在Unity引擎中实现文件下载是一...通过理解这些API的工作原理和正确地处理下载事件,你可以构建可靠且高效的文件下载系统。在实际项目中,还要考虑用户界面的反馈、错误处理和资源管理,确保为用户提供良好的下载体验。

    API说明1

    总结来说,《幻想空奕行 ~ Choice of the Future》的API说明涵盖了游戏核心逻辑中关键类的属性和方法,这对于开发者来说是宝贵的参考资料,可以帮助他们高效地集成和扩展游戏功能。在实际编程时,务必注意遵循Unity...

    unity血条及文字显示代码

    总结来说,Unity中的血条和文字显示是通过结合UI组件、C#脚本和事件系统来实现的。`SetTextByText`和`SliderAddValue`等方法是自定义逻辑的体现,它们使血条和文字的更新更加灵活和易于管理。开发者可以根据具体需求...

    DefaultInitializationErrorHandler.docx

    总结来说,`DefaultInitializationErrorHandler`是Vuforia提供的一种机制,用于处理Vuforia引擎初始化时的错误,通过自定义此类,开发者可以定制化的处理错误信息,提供更好的用户体验。理解和利用好这个类,可以...

    AppLogger使用说明1

    3. AppLogger 的 SDK 初始化需要在 MonoBehaviour 子类中添加代码,使用 init 函数,传入 appId 和 appChannel 两个参数,例如:`AppLogger.init("appId", "appChannel");` 4. appId 是应用的唯一标识,在天梯游戏...

    untiy切换角色选择的状态

    `characterSelectShow` 脚本挂载在每个可选择的角色上,其核心功能在于监听鼠标的点击事件,并将这些事件传递给`StarMemuController`进行进一步处理。下面是具体的代码实现: ```csharp using UnityEngine; using ...

    Unity3D中Android应用的退出脚本2

    在Unity3D游戏开发中,有时我们需要为Android平台实现一个退出应用的功能,这通常是通过监听设备的返回键事件来完成的。这篇博客将探讨如何在Unity3D中编写一个简单的脚本来实现这一功能。 首先,我们需要理解Unity...

    Unity与原生交互,Arr包 拨号 高德导航 等

    总结来说,本教程涵盖了Unity与Android原生交互的基础知识,包括如何创建Android插件、编写Java代码实现特定功能、在Unity中调用这些功能,以及配置AndroidManifest.xml文件。通过学习这些内容,开发者可以扩展Unity...

    unity时间控制插件Chronos - Time Control.rar

    在具体实现上,"Chronos"通过扩展Unity内置的`MonoBehaviour`类,提供了一系列易于理解和使用的API。比如,你可以通过`Time.timeScale`来全局调整游戏时间,但"Chronos"提供更精细的控制,例如` gameObject.chrono....

    用C#做的一个小游戏

    在我们的例子中,这个小游戏可能是一个简单的2D或3D项目,利用了Unity引擎提供的功能和C#的灵活性。 泛型是C#中的一大亮点,它允许我们定义可以使用多种数据类型的类、接口和方法。在游戏开发中,泛型的使用场景...

    unity3D 脚本入门教程

    此外,实战案例分析部分还提供了具体的代码示例,帮助学习者更好地理解和应用所学知识。在掌握了这些基础知识之后,可以进一步探索更高级的功能和技术,如网络编程、AI行为树等,从而成为一名合格的Unity3D开发者。

    trilibtest.zip

    在实际开发中,你可以利用TriLib提供的Demo来了解插件的具体用法和功能。Demo通常包含了不同模型格式的导入示例,通过运行和分析Demo,你可以更好地掌握TriLib的使用技巧和最佳实践。 总结来说,TriLib是Unity...

    让不懂编程的人爱上Unity3d游戏开发026-Unity3d和C#的双剑合璧01-Unity游戏脚本剖析上.pdf

    MonoBehaviour是Unity中的基类,提供了一系列生命周期方法和其他实用功能。 - `void Start()` 方法会在游戏启动时调用一次,常用于初始化脚本变量。 - `void Update()` 方法会在每一帧结束时被调用,适合用来处理...

    unity3d Embedded Browser v3.1.0 内嵌式浏览器网页插件

    此版本的插件为v3.1.0,相较于早期版本2.1.0,在功能上进行了优化和增强,使开发者能够更便捷地实现在Unity3D项目中嵌入浏览器的功能。 #### 主要功能特点 1. **网页交互**:通过该插件可以在Unity项目中嵌入一个...

    实现物体绕不同轴旋转 并调用外部函数1

    最后,通常我们将`CTRotation`脚本分配给需要旋转的物体,而将另一个具有调用`RotateTo()`功能的脚本分配给控制物体的实体,例如玩家控制器或游戏事件触发器。通过这种方式,我们可以从外部控制物体的旋转行为,使得...

Global site tag (gtag.js) - Google Analytics