原文翻译:
            Execution Order of Event Functions
            事件函数的执行顺序
           
            Editor编辑器
            Reset: Reset is called to initialize the script’s properties when it is first attached to the object and also when the Reset command is used.
            Reset被称为重置为初始化脚本的属性首先附加到对象时,也当使用重置命令。
           
           
            First Scene Load第一次场景加载
                These functions get called when a scene starts (once for each object in the scene).
                以下函数在场景加载每一个游戏对象脚本都会执行一次
               
                Awake: This function is always called before any Start functions and also just after a prefab is instantiated. (If a GameObject is inactive during start up Awake is not called until it is made active, or a function in any script attached to it is called.)
                Awake函数在游戏物体实例化执行,即使物体被隐藏了awake还是会执行
               
                OnEnable: (only called if the Object is active): This function is called just after the object is enabled. This happens when a MonoBehaviour instance is created, such as when a level is loaded or a GameObject with the script component is instantiated.
                每次激活游戏物体setActive(true)才会执行一次OnEnable(),游戏物体实例化后会执行一次OnEnable,如果游戏物体开始就是avtive=false,第一次就不会执行OnEnable()
               
           
            Update Order更新列表:
                FixedUpdate: 它于游戏帧之间没有关联,定时间每调用一次,FixedUpdate是一个可靠的计时器
                Update: 每帧调用更新一次
                LateUpdate:比如要第三人称摄像机跟随人物移动,应该写在该方法内,不然会造成摄像机抖屏现象

               
            Rendering   
                OnPreCull:
                OnBecameVisible/OnBecameInvisible:
                OnWillRenderObject:
                OnPostRender: 之后调用相机完成渲染场景。
                OnRenderImage:称为场景渲染完成后允许屏幕图像的后处理。
                OnDrawGizmos: 用于绘制小场景视图的可视化的目的。
           
            Coroutines协同程序
                正常运行协同程序更新后更新函数返回。协同程序是一个函数,可以停止其执行给定YieldInstruction(收益率),直到完成。不同用途的协同程序:
                yield The coroutine will continue after all Update functions have been called on the next frame.
                yield WaitForSeconds 暂停几秒继续向下执行
                yield WaitForFixedUpdate
                yield WWW Continue after a WWW download has completed.
                yield StartCoroutine Chains the coroutine, and will wait for the MyFunc coroutine to complete first.
               
            When the Object is Destroyed当对象呗销毁的时候:
                OnDestroy: This function is called after all frame updates for the last frame of the object’s existence (the object might be destroyed in response to Object.Destroy or at the closure of a scene).
                OnDestroy()函数,当对象呗销毁,场景跳转关闭的时候执行一次该方法
       
       
            When Quitting: These functions get called on all the active objects in your scene,
                OnApplicationQuit(),当结束游戏时候,Unity会向该场景中所有的游戏物体调用一次OnApplicationQuit()方法
                OnDisable()当游戏物体setAactive(false)的时候,每一个组件都会调用一次

Script Lifecycle Flowchart脚本生命周期流程图

总结下生命周期比较重要的方法:
  awake:游戏物体实例化执行一次
  OnEable:每次setActive(true) 执行一次
  Update:
  FixedUpdate:
  LateUpdate:一些物理运动是写在该方法中
  OnDestroy:Destriy(gameobject)当物体被销毁的执行一次
  OnDisable:每次setActive(false) 执行一次

Unity 生命周期的更多相关文章

  1. Unity3D笔记八 Unity生命周期及动画学习

    Unity脚本从唤醒到销毁有着一套比较完善的生命周期,添加任何脚本都必须遵守自身生命周期法则.下面介绍一下生命周期中由系统自身调用的几个比较重要的方法.  Update(){}.正常更新,用于更新逻 ...

  2. unity生命周期

    1.静态构造函数 当程序集被加载的时候就被调用了,如果你的unity处于编辑状态时,此时你保存一个脚本(从而迫使重新编译),静态构造函数会立即被调用,因为unity加载了DLL.并且它将不会再次运行, ...

  3. Unity学习疑问记录之脚本生命周期

    总的来说unity的脚本生命周期分几个部分:编辑→初始化→游戏逻辑→渲染→GUI→Teardown首先是Reset,顾名思义:重置.在什么情况下调用呢?1.用户第一次添加组件时.2用户点击见组件面板上 ...

  4. Unity(二)生命周期LifetimeManager

    描述:Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理. //创建一个Unit ...

  5. Unity脚本生命周期

    前言 说到生命周期,影响最深刻的是,在接触Java的JSF组件时,JSF组件的五大生命周期,全要默写出来,嘿嘿…… 总结这两天在写小怪和掉落的糖葫芦时,老是遇到GameObject未销毁,一直存在场景 ...

  6. Unity 3D Framework Designing(3)——构建View和ViewModel的生命周期

    > 对于一个View而言,本质上是一个MonoBehaviour.它本身就具备生命周期这个概念,比如,Awake,Start,Update,OnDestory等.这些是非常好的方法,可以让开发者 ...

  7. [IoC容器Unity]第二回:Lifetime Managers生命周期

    1.引言 Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理,非常方便,下面就介 ...

  8. Unity中巧用协程和游戏对象的生命周期处理游戏重启的问题

    主要用到协程(Coroutines)和游戏对象的生命周期(GameObject Lifecycle)基础知识,巧妙解决了游戏重启的问题. 关于协程,这里有篇文章我觉得写的非常好,理解起来也很容易.推荐 ...

  9. [转载][IoC容器Unity]第二回:Lifetime Managers生命周期

    1.引言 Unity的生命周期是注册的类型对象的生命周期,而Unity默认情况下会自动帮我们维护好这些对象的生命周期,我们也可以显示配置对象的生命周期,Unity将按照配置自动管理,非常方便,下面就介 ...

随机推荐

  1. 特殊权限:SUID,SGID,Sticky

    特殊权限passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:    chmod u+s FILE    chmod u-s FILE        如果FIL ...

  2. sleep()函数的的意义

    ===============WINDOWS平台下:====================== 关于VOID Sleep(DWORD dwMilliseconds);函数,许多人都觉得,它是告诉系统 ...

  3. python高级编程之最佳实践,描述符与属性01

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #最佳实践 """ 为了避免前面所有的 ...

  4. Velocity知识点总结

    Velocity知识点总结 1. 变量 (1)变量的定义: #set($name = "hello") 说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引號 ...

  5. cocoapods在OS X Yosemite系统中报错

    之前使用cocoapods一直是正常使用的,刚换了电脑,使用pod install的时候报错: /System/Library/Frameworks/Ruby.framework/Versions/2 ...

  6. django中使用原生sql

    在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖 ...

  7. iOS-OC-基础-NSString常用方法

    NSString常用方法和属性 //compare 比较字符串升序.相同还是降序,比较原理:首先比较第一个字符(ASCII码比较),如果是升序就为升序,如果相同比较下一个字符... NSString ...

  8. Spark IDEA开发环境构建

    本文档基于IEDA构建spark maven应用. date: 2016/8/1 author: wangxl 1.下载IDEA https://www.jetbrains.com/idea/ 2.安 ...

  9. 使用BOOST.SPIRIT.X3的RULE和ACTION进行复杂的语法制导过程

    Preface 上一篇简述了boost.spirit.x3的基本使用方法.在四个简单的示例中,展示了如何使用x3组织构造一个语法产生式,与源码串匹配并生成一个综合属性.这些简单的示例中通过组合x3库中 ...

  10. Java 一个字符串在另外一个字符串出现次数

    统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...