• 小白_Unity引擎_MonoBehaver


     1 public class MonoTest : MonoBehaviour {
     2 
     3     /// <summary>
     4     /// 1.在用户点击Inspector检视面板的Reset或者首次添加组件时被调用
     5     /// 2.此函数只在编辑模式下(项目没有运行的时候)被调用。
     6     /// 3.Reset最常用于在检视面板中给定一个默认值。
     7     /// </summary>
     8     void Reset()
     9     {
    10 
    11     }
    12 
    13 
    14     /// <summary>
    15     /// 1.Awake在脚本整个生命周期内像构造函数一样仅被调用一次
    16     /// 2.初始化函数,在项目运动时系统自动调用
    17     /// 3.Awake 在所有对象被初始化之后调用,所以可以安全的与其它对象对话或使用诸如GameObject.FindWithTag()这样的函数搜索它们
    18     /// 4.不论脚本是否激活状态,Awake都会被调用(但如果绑定的物体没有激活,将不会调用Awake函数)
    19     /// 5.Awake 总是在Start之前被调用
    20     /// 6.它不能用来执行协同程序
    21     /// 
    22     /// </summary>
    23     void Awake()
    24     {
    25         //建议:一般在Awake方法中创建游戏对象或在Resources.Load(Prefab)对象。
    26         //在start方法中去获取游戏对象或者游戏组件这样可以确保万无一失 了
    27 
    28     }
    29 
    30 
    31     /// <summary>
    32     /// 1.Start 在脚本整个生命周期内仅被调用一次
    33     /// 2.Start总是在Awake之后被调用
    34     /// 3.Start总是在Update前调用
    35     /// 4.必须在脚本被激活时才能被调用
    36     /// </summary>
    37     void Start()
    38     {
    39 
    40     }
    41 
    42 
    43     /// <summary>
    44     /// 1.Update是正常帧更新,会在每一帧调用一次
    45     /// 2.帧长时时在改变Time.deltaTime
    46     /// 3.一般用于非物理的运动(比如使一个物体匀速运动)
    47     /// </summary>
    48     void Update()
    49     {
    50         Debug.Log("Update时间间隔: " + Time.deltaTime);
    51     }
    52 
    53 
    54 
    55 
    56 
    57     /// <summary>
    58     /// 1.FixedUpdate 是固定帧更新,会在每个固定的时间频率调用一次函数
    59     /// 2.帧长时固定的(默认为0.02),不是时时改变的。 Edit ---》 Project Setting --》Time ---》Fixed Timestep
    60     /// 3.一般用于物理的运动(比如控制一些诸如RigidBody, Collider等物理相关组件)
    61     /// (物理引擎中用于物理的行为运动都是根据固定的时间来计算的)
    62     /// 
    63     /// </summary>
    64     void FixedUpdate()
    65     {
    66         Debug.Log("FixedUpdate时间间隔: " + Time.deltaTime);
    67     }
    68 
    69     /***
    70      * Update 和 FixedUpdate 区别:
    71      * 1.两者帧长不同
    72      * 2.FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数会跟着下降
    73      * 3.Update 就比较适合做控制
    74      * 4.LateUpdate 与 Update方式一样,唯一不同的是
    75      * LateUpdate,在每帧Update执行完毕调用,他是在所有Update结束后才调用
    76      * 举例:摄像机跟随,都是在所有Update 操作完才跟进摄像机
    77      * 不然就有可能出现摄像机已经推进了,但是视角还未有角色的空帧出现
    78      * 
    79      */
    80 
    81 
    82 
    83 }

    Cube1上有脚本Script1 给Cube2添加脚本Script2,

    在Script1中start并调用中的Script2中的变量,这个变量在Script2中start中赋值,结果得到的是默认值,

    要解决:在Awake中赋值。(添加脚本后,获取变量,这时候还没有执行start还没有调用)

     

     

    如果两个脚本中在Awake方法里都做了事情,但是这样这两件事也有前后顺序怎么办?

       可以设置脚本的执行前后顺序

      Editor ---》 Project Setting  ----》  Script Execution Order

    或者选中脚本

     

    拖拽添加需要执行顺序的脚本

    设置后边的数字,从小到大,从先到后执行

  • 相关阅读:
    FFmpeg软件只是个解码编码软件,如果支持多种格式必须先安装好对应的库,下面就说下我装的库
    在Centos 6.5 X64下切割m3u8
    扩展自己的数组核心库
    关于小周同志在消息模块定位功能修改时存在的问题分析
    比对两个Word文件内容是否一致的C#解决办法
    如何实现artTemplate模板的可重用性,以此框架打造自己的自定义组件
    稍微谈一下 javascript 开发中的 MVC 模式
    Node.js 函数
    Node.js模块系统
    Node.js Stream(流)
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9259247.html
Copyright © 2020-2023  润新知