MonoBehaviour简述

Unity中的脚本都是继承自MonoBehaviour。

一、基础函数:

创建脚本就默认的update、start方法:(这些官方的文档都是有的)

Start:Update函数第一次运行前调用,一般用于游戏对象的初始化。比如GetComPonent之类。

Update:每帧调用;一般用于更新场景和状态,物理相关不建议在此处处理。

Awake:脚本实例对象被创建时调用,也可以用于游戏对象的初始化,但是Awake是在所有脚本的Start之前执行。

FixedUpdate:固定间隔执行,一般用于物理状态更新。

LateUpdate:每帧执行,在Update之后。一般和摄像机有关的状态放在这里处理。

现在我来简单测试下:我在场景中添加了两个Cube,分别添加了Script1,Script2,下面是执行log,可以看到Awake是在所有脚本之前调用的。

二、事件响应函数:

MonoBehaviour中的事件响应函数都是已On开头的,比如:鼠标事件,脚本激活、销毁,碰撞等。

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

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

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

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

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

OnCollisionEnter:当此collider/rigidbody与另一个rigidbody/collider接触时调用。

OnCollisionExit:当此collider/rigidbody停止触发另一个rigidbody/collider时。

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

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

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

OnFailedToConnectToMasterServer:当连接主服务器出现问题时在客户端或服务器端调用。

OnControllerColliderHit:在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。

OnDestroy:脚本销毁时调用。

OnDisable:对象禁用或者取消激活时调用。

OnEnable:对象变为可用或激活状态时此函数被调用。

OnDrawGizmosSelected:如果想在物体被选中时绘制gizmos,执行这个函数。

OnGUI:渲染和处理GUI事件时调用。

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

OnLevelWasLoaded:一个新关卡被载入时此函数被调用。

OnMouseDown、OnMouseDrag、OnMouseEnter、OnMouseExit、OnMouseOver、OnMouseUp:鼠标事件。

OnMouseUpAsButton:只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。

OnTriggerEnter:当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。

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

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

三、默认组件

组件对应的变量名是组件名的小写。

Transform:对象的位置,角度,缩放。变量名:transform

Rigidbody:刚体属性。

Render:渲染物体模型。

Light:灯光属性。

Camera:相机属性。

Collider:碰撞体属性。

Animation:动画属性。

Audio:声音属性。

四、组件获取函数

获取组件的方法由于比较耗时,所以如果你在update修改transform的话,一般可以先在Start中获取这个组件的引用,然后在update中使用引用去修改。

比如获取上面例子cube1的script1脚本:

[c-sharp]Script1 spt1 = GetComponent<Script1>( );[/c-sharp]

下面是获取组件的函数:

GetComponent:获取组件。

GetComponents:获取组件列表。

GetComponentInChildren:返回Type类型组件,在GameObject或它的任何子物体使用深度优先搜索,仅返回激活的组件。

GetComponentsInChildren:在GameObject或任何它的子物体,返回全部Type类型组件。

五、获取场景中的游戏对象

同样和获取组件一样,该方法比较费时,一般在Start中获取引用。

[c-sharp]

GameObject cube1 = GameObject.Find("Cube1");

GameObject cube1 = GameObject.FindWithTag("tag_cube1");

[/c-sharp]

除了上面的方法,也可以使用public对象,直接使用面板拖拽赋值。

时间: 2024-08-07 21:50:14

MonoBehaviour简述的相关文章

Hibernate简述及入门实例

一.Hibernate简述 总的概括,Hibernate是一个ORM的轻量级持久层框架,解决了对象和关系数据库中表的不匹配问题(阻抗不匹配)以及拥有开发代码不用去继承hibernate类或接口的优势(无侵入性).hibernate框架实现使得开发人员可以避免反复地编写javajdbc部分代码,应用面向对象的思维操作关系型数据库. 二.使用myeclipse创建hibernate实例两种方法(以hibernate3.5.2及mysql为例) a)手动编写hibernate.cfg.xml及*.hb

Struts2基本使用(二)--配置文件简述

配置文件简述 引入Struts2框架之后项目中多了一个struts.xml,以及web.xml也多了一些代码 web.xml只要的功能就是拦截用户的请求其多出的代码如下: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class&

简述23种软件设计模式

简述23种软件设计模式 一.设计模式分类 总体来说设计模式分为三大类: 五种创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 七种结构型模式:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 十一种行为型模式:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 二.设计模式概述 创建型模式 1.工厂方法模式 工厂方法模式的创建是因为简单工厂模式有一个问题,在简单工厂模式

Unity3d学习 基础-关于MonoBehaviour的生命周期

其实在刚接触Unity3D,会有一个疑问,关于Unity3D游戏运行的初始入口在哪?不像Cocos2dx还有个AppDelegate文件可以去理解.而且在刚开始就接触Unity3D时,看到所有脚本中编写的类 几乎都继承了MonoBehaviour这个父类,那么MonoBehaviour这个类是干什么的? 首先我们看一关于MonoBehavior这个类的继承关系: 从上图可以看出,MonoBehaviour是间接继承自Component,说明继承自MonoBehaviour的脚本充当的角色是组件的

Spark 学习: spark 原理简述与 shuffle 过程介绍

Spark学习: 简述总结 Spark 是使用 scala 实现的基于内存计算的大数据开源集群计算环境.提供了 java,scala, python,R 等语言的调用接口. Spark学习 简述总结 引言 1 Hadoop 和 Spark 的关系 Spark 系统架构 1 spark 运行原理 RDD 初识 shuffle 和 stage 性能优化 1 缓存机制和 cache 的意义 2 shuffle 的优化 3 资源参数调优 4 小结 本地搭建 Spark 开发环境 1 Spark-Scal

JavaScript事件简述

事件简述 技术一般水平有限,有什么错的地方,望大家指正. 事件是我们平时经常使用,这次就来了解一下事件.首先我们要明确几个概念,JavaScript是单线程,浏览器是多线程的,并不是所有的事件处理函数都是异步的. 前两个我们都知道,这里我们主要介绍第三个.事件处理函数可以在将来执行,只要满足触发条件就会执行事件处理函数.我们经常看到的一个场景,在循环中为一组元素绑定事件,弹出它在这组元素中的索引: <button>button1</button><button>butt

简述Python中&quot;_&quot;的使用常识

0. 背景 Python里面的下划线"_"使用频率明显比其他主流语言要多的多,而且在Python中,它也有自己独到的用处.本文主要简述:下划线在python中的使用常识. 1. 单下划线-将名称封装到类中 如果想将类中的"私有"数据封装到类的实例上,但是又需要考虑到Python缺乏对属性的访问控制问题.与其依赖语言特性来封装数据,Python程序员们更期望通过特定的命名规则来表达出对数据和方法的用途. 第一个规则是任何以单下划线(_)开头的名字应该总是被认为只属于内

TCP/IP协议工作原理简述

TCP/IP协议工作原理简述 Table of Contents 1 概要 2 应用层 3 传输层 4 网络层 5 链路层 1 概要 协议是什么?协议是一组为完成特定需求或功能而定义的标准通讯格式.协议是服务于具体需求或功能的,它不能独立存在. 制定TCP/IP协议的目的是为了解决主机互联以及互联的主机上的应用通讯的问题.TCP/IP协议共有四层:应用层.传输层.网络层.链路层.应用层实际就是我们的应用程序,对于非具体应用而言这一层的协议是未定义的,需要我们自己根据我们具体的业务模型来制定.传输

Unity3D之MonoBehaviour的可重写函数整理

转载 最近在学习Unity3d的知识.虽然有很多资料都有记录了,可是我为了以后自己复习的时候方便就记录下来吧!下面的这些函数在Unity3d程序开发中具有很重要的作用. Update 当MonoBehaviour启用时,其Update在每一帧被调用. LateUpdate 当Behaviour启用时,其LateUpdate在每一帧被调用. FixedUpdate 当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用. Awake 当一个脚本实例被载入时Awake被调用.