原文地址: http://www.cocos2dev.com/?p=486

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对象,直接使用面板拖拽赋值。

[Unity3D]MonoBehaviour函数介绍的更多相关文章

  1. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  2. PHP ob_start() 函数介绍

    ob_start() 函数介绍: http://www.nowamagic.net/php/php_ObStart.php ob_start()作用: http://zhidao.baidu.com/ ...

  3. Python开发【第三章】:Python函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  4. row_number() OVER(PARTITION BY)函数介绍

      OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个 ...

  5. select与poll函数介绍

    select与poll函数介绍 在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接.传向select的参数告诉内核: 1)我们所关心的描述符 2)对于每个描述符我们所关心的状态 ...

  6. swift1.2语言函数和闭包函数介绍

    swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...

  7. ZLG_GUI配置与函数介绍

    http://www.docin.com/p-825479457.html ZLG_GUI配置与函数介绍

  8. oracle下的OVER(PARTITION BY)函数介绍

    转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数          ...

  9. 第五篇、常用的SQL语句和函数介绍

    简介: 在使用到sqlite3的时候,常常需要写一些SQL语句,现将常用到的部分语句稍微总结以下,由于个人习惯,关键字用大写. 附: /*简单约束*/ CREATE TABLE IF NOT EXIS ...

随机推荐

  1. DG - physical standby switchover切换过程

    一.切换前检查1.检查备库已经全部接收到主库的redo如果是最大可用性.最大保护性模式,可以在primary端查看v$archive_dest_status,确认是否所有的redo已经传送到备库#在主 ...

  2. c# 基本知识 ref 和 out

    一:首先两者都是引用传递,都是按地址传递的. 二: 区别 (1)ref 默认必须初始化,out 不需要显式初始化.例如: ; int num2; refMethod(ref num1); outMet ...

  3. .net开发,html ajax开发架构之我见 bs ajax最简化法 Knock out Request,totally oo

    .net开发中,无论ajax还是webform,webpage, 总免不了要和request这个静态全局,可以远程通信的对象打交道. 而对于软件来讲,按照Matin Fowler的的面向对象,可利用软 ...

  4. linux tomcat 配置

    http://www.cnblogs.com/xdp-gacl/p/4097608.html

  5. Android activity的回传数据

    package com.example.myact3; import android.content.Intent; import android.os.Bundle; import android. ...

  6. oracle的冷备份

    oracle冷备份要备份三类文件:数据文件,控制文件,日志文件 查看所有数据文件 select name from v$datafile; 查看所有日志文件 select member from v$ ...

  7. Oracle的分页查询

    --1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT ...

  8. access链接最原始代码,两种

    using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web ...

  9. Native OR WebApp ?

    前两天刚好和一帮产品同学聊过,特指一个APP里面的各页面应该怎么做,大家的总结如下,原理一样,关键是了解Native和Web各自的优劣势:1. 偏交互的Native,偏浏览的Web:交互指复杂操作,输 ...

  10. 用smack+openfire做即时通讯

    首发:个人博客 必须说明:smack最新的4.1.1,相对之前版本变化很大,而且资料缺乏,官方文档也不好,所以还是用老版本3.2.2吧.这篇博文中的代码是4.1.1版的,但不推荐用它.用openfir ...