Unity3D中的系统调用方法

在Unity3D中有一些方法不是程序员手动调用的,而是Unity3d工具自身设计时就决定自动调用的,不过调用的时机和场合不同,下面就一一介绍一下:

Awake:顾名思义,Unity3D的脚本苏醒时需要调用的方法,这个方法比Start方法执行的还要早,也是执行一次。

Start:可以理解为类的构造函数,或者是init函数,用于初始化各种变量,仅执行一次。

Update:类似于flash as3 onframe的回调函数,每帧均回调。

Fixedupdate:每一帧都执行,处理Rigidbody时,需要用FixedUpdate代替Update。例如:给刚体加一个作用力时,你必须应用作用力在FixedUpdate里的固定帧,而不是Update中的帧。(两者帧长不同)FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。

Lateupdate:每帧均回调,但每次均在Update之后再调用。

OnGUI:每帧均回调,用于绘制GUI对象。

Reset:用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值。

OnDisable:当物体被销毁时
OnDisable将被调用,并且可用于任意清理代码。脚本被卸载时,OnDisable将被调用,OnEnable在脚本被载入后调用。注意:
OnDisable不能用于协同程序。

OnDestory:当MonoBehaviour将被销毁时,这个函数被调用。OnDestroy只会在预先已经被激活的游戏物体上被调用。注意:OnDestroy也不能用于协同程序。

上面对于各回调函数的介绍都相对抽象,具体的感觉还是需要在IDE环境中使用才能体会。

时间: 2024-12-30 09:13:36

Unity3D中的系统调用方法的相关文章

Unity3D中的函数方法及解释

一.刷新函数 Update 当MonoBehaviour启用时,其Update在每一帧被调用. LateUpdate 当Behaviour启用时,其LateUpdate在每一帧被调用. FixedUpdate 当MonoBehaviour启用时,其 固定时间调用一次 二.启动函数 Awake 当一个脚本实例被载入时Awake被调用. Start Start仅在Update函数第一次被调用前调用. Reset 重置为默认值. 三.交互函数   OnMouseEnter 当鼠标进入到GUIEleme

Unity3D中的函数方法和解释

一.刷新函数 Update 当MonoBehaviour启用时,其Update在每一帧被调用. LateUpdate 当Behaviour启用时,其LateUpdate在每一帧被调用. FixedUpdate 当MonoBehaviour启用时,其 固定时间调用一次 二.启动函数 Awake 当一个脚本实例被载入时Awake被调用. Start Start仅在Update函数第一次被调用前调用. Reset 重置为默认值. 三.交互函数 OnMouseEnter 当鼠标进入到GUIElement

(转)Unity3D中移动物体位置的几种方法

1. 简介 在unity3d中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale). 其实所有的移动都会导致position的改变,这里所说的通过Transform组件来移动物体,指的是直接操作Transform来控制物体的位置(position). 2.1 Transform.Tra

在Unity3d中解析Lua脚本的方法

由于近期项目中提出了热更新的需求,因此本周末在Lua的陪伴下度过.对Lua与Unity3d的搭配使用,仅仅达到了一个初窥门径的程度,记录一二于此.水平有限,欢迎批评指正. 网络上关于Lua脚本和Unity3d的配合使用的资料不多,例子工程大多相同.大概了解到针对性的插件有uLua.UniLua.KopiLua三种.试用了前两种,抛开效率与安全性不说,感觉uLua试用起来比较简单,本文只介绍uLua的使用步骤. uLua的原理是在Unity3d中解析字符串形式的Lua脚本,让Lua与C#相互传递参

ShareREC在Unity3D中无法录制视频的解决方法

最近有一些同学问到ShareREC集成到Unity3D中提示:#warning:无法录制当前应用! 这是由于Unity3D在4.6.3之后加入了对Metal框架的支持,导致ShareREC无法进行录制(目前ShareREC不支持录制Metal框架). 解决的办法就是把Metal给禁用掉,操作方法如下: 1.先从Unity3D中导出XCode工程 2.定位到UnityAppController+Rendering.mm文件,找到IsMetalSupported方法,把里面的内容注释掉,只保留ret

unity3d中dllimport方法的使用,以接入腾讯平台为例!!!

说到有关dllimport方法可能还有很多人比较陌生,其实我自己也说不太清楚,大概说说什么时候要用它. 事实上功能类似于调用android的第三包,我们想要使用苹果上特定的api或者第三方平台的一些东西(现在很少第三方平台会为unity做独立的插件吧),我们就会用到这个叫dllimport的功能. 今天接了一下腾讯的平台,就拿它来做一个记录好了,免得我到时候又忘记了. ios用的是obj-c,说实话对这个语言一窍不通还,大概看了一下,把握了一下demo里面的使用方法,所以有一些SB的地方也请原谅

linux中mmap系统调用原理分析与实现

参考文章:http://blog.csdn.net/shaoguangleo/article/details/5822110 linux中mmap系统调用原理分析与实现 1.mmap系统调用(功能)      void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )      内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的

Unity3D中的Coroutine详解

Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这样的代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序执行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine需要注意什么问题? 一.yield的在几种语言中的程序执行特性: Lua中的yield是使得协同函数运行->挂起并且传递参数给resume.resume使得协同函数挂起->运行

Unity3D中定时器的使用

源地址:http://unity3d.9tech.cn/news/2014/0402/40149.html 在游戏设计过程中定时器是必不可少的工具,我们知道update方法是MonoBehavior中一个人人皆知的定时器方法,每帧都在调用,那还有其他什么定时器的方法呢,这里介绍一下. 1.Invoke(string methodName,float time) 在一定时间调用methodName函数 1 2 3 4 5 6 7 8 9 10 11 12 13 using UnityEngine;