Unity3D中可重载虚函数的总结

重载虚函数:Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结。

  Awake

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

  Start

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

  Update

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

  FixedUpdate

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

  LateUpdate

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

  Reset

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

  OnApplicationFocus

  OnApplicationPause

  OnApplicationQuit

应用程序失去焦点,应用程序暂停,应用程序退出时候发送这些消息。

  OnBecameInvisible

  OnBecameVisible

当脚本宿主(不)被任何摄像机显示时候发送此消息。

  OnCollisionEnter

  OnCollisionExit

  OnCollisionStay

当其他碰撞或者刚体(collider/rigidbody )和参数的碰撞或者刚体(collider/rigidbody )重叠、退出时发送前两个。而当他们保持重叠状态时每帧都会发送一个Stay消息。

  OnConnectedToServer

  OnDisconnectedFromServer

  OnFailedToConnect

  OnFailedToConnectToMasterServer

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

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

  OnMasterServerEvent

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

  OnNetworkInstantiate

当物体被Network.Instantiate时触发。(还没研究到)

  OnPlayerConnected

  OnPlayerDisconnected

在服务端当玩家成功连接/离线时候触发。

  OnControllerColliderHit

当控制者和参数ControllerColliderHit碰撞时候触发此消息。官方举例可以用于角色移动一个物体,当角色碰到这个参数物体时候,你可以在这函数里操作移动此物体的动作,等等。

  OnParticleCollision

当粒子撞到碰撞体(collider)时触发。

  OnDisable

  OnEnable

当脚本宿主被启用或者禁用时候触发。

  OnDrawGizmos

  OnDrawGizmosSelected

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

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

  OnGUI

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

  OnJointBreak

  OnLevelWasLoaded

当新的level(unity包)读取完毕时候触发。

  OnMouseDown

  OnMouseDrag

  OnMouseEnter

  OnMouseExit

  OnMouseOver

  OnMouseUp

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

  OnPostRender

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

  OnPreCull

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

  OnPreRender

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

  OnRenderImage

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

  OnRenderObject

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

  OnSerializeNetworkView

  OnServerInitialized

当 Network.InitializeServer完成时触发。

  OnTriggerEnter

  OnTriggerExit

  OnTriggerStay

当碰撞体(collier)接触触发区域(trigger)时候的一系列消息。

  OnWillRenderObject

Unity3D中可重载虚函数的总结

时间: 2024-11-03 22:11:27

Unity3D中可重载虚函数的总结的相关文章

基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 http://bbs.csdn.net/topics/380238133 的作者无关,不对其内容负责.百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面. 首页 精选版块 移动开发 iOS Android Qt WP 云计算 IaaS Pass/SaaS 分布式计算/Hadoop J

C++中的纯虚函数和虚函数的作用

1. 虚函数和纯虚函数可以定义在同一个类(class)中,含有纯虚函数的类被称为抽象类(abstract class),而只含有虚函数的类(class)不能被称为抽象类(abstract class). 2. 虚函数可以被直接使用,也可以被子类(sub class)重载以后以多态的形式调用,而纯虚函数必须在子类(sub class)中实现该函数才可以使用,因为纯虚函数在基类(base class)只有声明而没有定义. 3. 虚函数和纯虚函数都可以在子类(sub class)中被重载,以多态的形式

C++面试题1:构造函数和虚构函数中能否调用虚函数?

C++面试题1:构造函数和虚构函数中能否调用虚函数? 构造函数跟虚构函数里面都可以调用虚函数,编译器不会报错. C++ primer中说到最好别用 由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,虚函数是不会呈现出多态的 类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时意味着其派生类部分已经析构掉,所以也不会呈现多态 因此如果在基类中声明的纯虚函数并且在基类的析构函数中调用之,编译器会发生错误. class Base { public: Base() { Fuct

自绘CListCtrl类,重载虚函数DrawItem

[cpp] view plain copy //自绘CListCtrl类,重载虚函数DrawItem void CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your code to draw the specified item ASSERT(lpDrawItemStruct->CtlType == ODT_LISTVIEW); CDC dc; dc.Attach(lpDrawItemStruc

第十三周(-形状类族的中的纯虚函数)

/* *copyright(c) 2015,烟台大学计算机学院 *All rights reserved. *文件名:第十三周(-形状类族的中的纯虚函数) *作者:王忠 *完毕日期:2015.6.02 *版本:v1.0 * *问题描写叙述:写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用例如以下的main()函数,求出定义的几个几何体的面积和. *输入描写叙述: *程序输出: #include <iostr

??项目2-形状类族中的纯虚函数

项目2-形状类族的中的纯虚函数 写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和. int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长.宽 Triangle

14周 项目2 形状类族中的纯虚函数

#include <iostream> using namespace std; class Shape { public: virtual double area()=0; }; class Circle:public Shape { public: Circle(double r):R(r) {} virtual double area() { return R*R*3.14; } protected: double R; }; class Rectangle:public Shape {

第十三周项目二 形状类族的中的纯虚函数

[项目2-形状类族的中的纯虚函数] 写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和. [cpp] view plaincopyprint? int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectang

抽象类中定义纯虚函数

首先看一段代码: class Instrument { public: virtual void play()const=0//非法的定义在抽象类中定义纯虚函数 { cout<<"Instrument Play\n"; } }; class Wind:public Instrument { void play( )const { cout<<"Wind Play\n"; } }; void main() { Wind s; Instrumen