MonoBehaviour常用方法

1.Start()
    在Update方法被调用之前开始调用Start方法,而且Start方法在整个MonoBehaviour生命周期内只被调用一次。Awake和Start不同的地方在于Start方法仅仅在脚本初始化后被调用,这样允许你延迟加载任何代码,直到代码真正被使用时。Awake方法总是在Start方法执行之前被调用,这样允许你初始化脚本代码。

2.Awake()
    当脚本被加载后立即调用Awake方法,这个方法通常在Start()开始之前声明某些变量或者游戏的状态标记符。同样,Awake也是在MonoBehaviour声明周期内被调用一次。Awake在所有的对象(个人认为是GameObject)实例化后被调用,因此绑定这个脚本的对象能与其他对象之间相互作用,例如,同过GameObjectFindWithTag方法查找其他对象。

3.Update()
    在Start方法执行过后,游戏的每一帧都在调用此方法。

4.FixedUpdate()
    每一帧都在调用此方法。当处理Rigdibody时FixedUpdate应该代替Update方法,比如,当一个物体需要增加一个力时,应该将这个力的代码写在FixedUpdate()里面。
    void FixedUpdate() {
        rigidbody.AddForce(Vector3.up);
    }

5.LateUpdate()
    每一帧都在调用此方法。当每一帧的Update方法全部执行完后,此方法开始被调用。举个例子来说吧,当一个角色移动而摄像机也要跟着移动时,摄像机的处理就应该在LateUpdate()里面了。

6.OnGUI()
    OnGUI()在每一帧被调用数次(several times),假如MonoBehaviour的enabled属性设置为false时,OnGUI()就失去作用了。

7.DontDestroyOnLoad()

    进入另一个场景时,保证绑定此脚本的对象的内存不被释放掉。也就是说绑定此脚本的GameObject在下一个场景中依然存在。


MonoBehaviour Mono行为 

 

一个游戏组件的脚本有一个生命周期——一开始实例化,直到结束实例被销毁。在这期间,他们有时候处于激活状态,有时候处于非激活状态;对于活动,对用户有时候可见,有时候不可见

本文主要讨论常见脚本的的生命周期:  

如下图  常见的 script 执行方法和流程

 

 

 

上图为 常见见的脚本 方法   


下面我们看看每个方法的


OnAwake 方法:  当脚本实例被载入时Awake被调用 


OnStart 方法:  Start仅在Update函数第一次被调用前调用。


OnUupdate 方法 :渲染一帧之前被调用。这里是大部分游戏行为代码被执行的地方,除了物理代码


OnGUI 方法:  渲染和处理GUI事件时调用 这里不是 没帧都调用哦 

 

FixedUpdate 方法: 这个函数在每个物理时间步被调用一次。这是处理基于物理游戏行为的地方。


LateUpdat 方法 :是在所有Update函数调用后被调用。这可用于调整脚本执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现


Reset 方法 : 重置为默认值

 

OnDisable 方法: 当对象变为不可用或非激活状态时此函数被调用。


OnDestroy 方法:当MonoBehaviour将被销毁时,这个函数被调用


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hbase RegionServer 启动失败 Time difference of xxx ms max allowed of 30000ms

Hbase RegionServer 启动报错 异常如下: STOPPED: Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server hostname13,16020,1576647671625 has been rejected; Reported time is too far out of sync with master. Time difference of 32345ms …

unity3d UGUI视频教程

http://forum.china.unity3d.com/home.php?modspace&uid3418&dothread&viewme&typethread&orderdateline&fromspace&page1

CDH6.x Solr7.x 集成 Ik 分词

下载ik相关jar包: 链接:https://pan.baidu.com/s/19fydKWw15g8rPg4LW1cOtw 提取码:f2l8 在CDH安装目录下 查找CDH6 solr 的启动目录 [roothostname1 ~]# find /opt -name WEB-INF |grep solr /opt/cloudera/parcels/CDH-6.0.0-1.cdh6.0.0.p…

java Switch里面的类型问题

switch中可以为以下几种类型: byte、short、int注意没有longchar、string(jdk 1.7版本之后的 )枚举类型 Java 7之前,switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类…

Unity3d常用插件

1,UI插件 - NGUI 3.9.2http://pan.baidu.com/s/1o6kst662,地图编辑器 - Tiled Map Editorhttp://www.mapeditor.org/download.html3,A*寻路插件 - A* Pathfinding Project Pro 3.7 最新版http://pan.baidu.com/s/1nty759n4,可视化脚本工具 - Playmaker 1.7.8 最新版http://pan.…

Solr 基础性能调优讲解

本篇文章我们来了解一下solr的性能方面的调优,分为Schema优化、索引更新与提交调优、索引合并性能调优、Solr缓存、Solr查询性能优化 Schema优化 1、indextrue比indexfalse在索引时占用更多的内存、索引合并和优化时间更长,索引体积也响应变的更大&…

C语言有参函数调用时参数值传递问题

http://blog.csdn.net/hehuimin6/article/details/38800459

Solr router 路由介绍

目录 1、compositeId路由 1.1、compositeId路由原理 1.2、compositeId路由查询 2、implicit路由 2.1、implicit路由原理 2.2、implicit路由查询 3、扩展 3.1、compositeId路由方式扩展 3.2、implicit路由方式扩张 solrcloud的官方文档有对路由的简短介绍,但…

行为树的原理及实现

查阅了一些行为树资料,目前最主要是参考了这篇文章,看完后感觉行为树实乃强大,绝对是替代状态机的不二之选。但从理论看起来很简单的行为树,真正着手起来却发现很多细节无从下手。 总结起来,就是: 1、行为树…

Unity 3D中的射线与碰撞检测

在我们的游戏开发过程中,有一个很重要的工作就是进行碰撞检测。例如在射击游戏中子弹是否击中敌人,在RPG游戏中是否捡到装备等等。在进行碰撞检测时,我们最常用的工具就是射线,Unity 3D的物理引擎也为我们提供了射线类以及相关的函…

图数据库 HugeGraph : IndexLabel

IndexLabel 用来定义索引类型,描述索引的约束信息,主要是为了方便查询。 IndexLabel 允许定义的约束信息包括:name、baseType、baseValue、indexFeilds、indexType,下面逐一介绍。 name: 属性的名字,用来区分不同的 …

boost常用库

1.boost::any boost::any是一种通用的数据类型&#xff0c;可以将各种类型包装后统一放入容器内&#xff0c;最重要的它是类型安全的。有点象COM里面的variant。 使用方法&#xff1a; any::type() 返回包装的类型 any_cast可用于any到其他类型的转化 #include <boost/any.h…

HugeGraphServer 部署安装

官方文档链接&#xff1a;https://hugegraph.github.io/hugegraph-doc HugeGraphServer Quick Start 1 概述 HugeGraph-Server 是 HugeGraph 项目的核心部分&#xff0c;包含Core、Backend、API等子模块。 Core模块是Tinkerpop接口的实现&#xff0c;Backend模块用于管理数…

java中调用System.currentTimeMillis()获取当前时间来求出时间差及程序执行的时间

package com.test;import java.util.Scanner; //String的连接1000次 class StringOperate{private String str;public long doWork(){long beginSystem.currentTimeMillis();//开始时间setStr(null);for(int i0;i<10000;i){setStr(getStr() i);}long endSystem.currentTime…

HugeGraph 多图配置

多图配置 我们的系统是可以存在多个图的&#xff0c;并且各个图的后端可以不一样&#xff0c;比如图 hugegraph 和 hugegraph1&#xff0c;其中 hugegraph 以 cassandra 作为后端&#xff0c;hugegraph1 以 rocksdb作为后端。 配置方法也很简单&#xff1a; 修改 gremlin-se…

JanusGraph: 可视化 Gephi 插件安装

下载地址 https://gephi.org/ 安装 下一步默认安装即可 打开安装插件 打开后发现提示无法连接&#xff0c;并且可用插件显示为0 &#xff08;我更新过所以不为0&#xff09; 点击“代理配置” 设置代理 安装插件 Graph Streaming 继续 重新启动&#xff0c;安装完成 点击概…

【Boost】Boost使用几条简单笔记

头文件就是库 使用者最常问的问题就是“我该怎么安装Boost”&#xff0c;这个也是我一开始最关心的问题&#xff0c;Boost这点做的很好&#xff0c;将大部分实现都封装在头文件里&#xff0c;所以对于一些基本的Boost库&#xff0c;其实是不需要安装的&#xff0c;只需要将头文…

分析模板方法设计模式

首先来看看用来比较int和String分别进行1000次运算求需要的时间进行比较&#xff0c;代码的实现&#xff1a; package com.test;import java.util.Scanner; //String的连接1000次 class StringOperate{private String str;public long doWork(){long beginSystem.currentTimeM…

JanusGraph(HugeGraph通用): 可视化 GraphEXP 插件安装

JanusGraph&#xff1a; 可视化 Gephi 插件安装可参考&#xff1a;https://datamining.blog.csdn.net/article/details/103894994 下载地址&#xff1a;https://github.com/bricaud/graphexp 安装 解压&#xff0c;在根目录下修改 graphexp.html <div class"nav inp…

java中的接口的定义以及实现关系

一、什么是接口&#xff1f; - 硬件接口&#xff1a;设备之间的连接方式 - 软件接口&#xff1a;程序代码&#xff0c;特殊的类&#xff0c;表示一种规范&#xff0c;是具有N个方法的特征集合。 java中的接口&#xff1a; 专家说的多个抽象类的抽象就是接口。 interface …