Unity3D学习笔记之脚本的生命周期


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptLifeTest : MonoBehaviour
{
    /* 不同的脚本挂载在同一个游戏对象时,
     * 脚本的顺序:后挂载的脚本先执行。(尽量避免这样记忆)
     * 想要更改脚本的使用顺序: 
     * 单击脚本 -> Inspector -> 点击ExecutionOrder -> Default Time -> + 选择脚本(添加后,脚本后会有个数字,数字越大,优先级越高)
     */

     /* 不同的脚本挂载在不同的游戏对象时,
      * 在相同场景中,游戏对象的顺序,决定了脚本的优先级,越往上优先级越高。
      */ 

    ///<param name="Reset"></param>
    /// <summary>
    /// 复位,发生在编辑器中,当第一次挂载脚本或者按Reset按钮的时候回调用
    /// 只要游戏对象挂在了脚本,在未运行的时候或运行过程中亦或者游戏对象未被使用时,也会被调用。
    /// </summary>
    private void Reset()
    {
        print("Reset");
    }

    ///<param name="Awake"></param>
    /// <summary>
    ///唤醒方法,在开始运行的时候执行一次,并且在脚本的整个生命周期当中也只会执行一次,此方法通常用来给对象进行初始化(实例化对象)
    ///当一个脚本实例被载入时调用一次(运行过程中,挂载脚本就会被调用,不论有没有被启用该脚本都会被调用)
    /// </summary>
    private void Awake()
    {
        print("Awake");
    }

    ///<param name="OnEnable"></param>
    /// <summary>
    /// 当启用该脚本组件的时候调用通常用来注册事件
    /// 在整个脚本生命周期当中会执行多次。
    /// </summary>
    private void OnEnable()
    {
        print("OnEnable");
    }

    ///<param name="FixedUpdate"></param>
    /// <summary>
    /// 脚本组件启动的情况下 。
    /// 固定更新方法(固定更新函数)默认每0.02 S(秒)【时间步调——更改的方法:Unity-Edit-Project Settings-Time-Inspector-Fixed Timestep (更改数值即可)】执行一次。
    /// 当Time.timeScale = 0;(时间流速)时,此函数不会执行(调用)。它的调用与时间有关,与帧率无关。
    /// 此方法通常用作物理计算和更新(通常会把物理的计算和操作放在此方法当中)因此,此方法也被称为物理更新方法(函数)
    /// </summary>
    private void FixedUpdate()
    {
        print("FixedUpdate");
    }

    ///<param name="Start"></param>
    /// <summary>
    /// 仅在UpDate函数第一次调用之前调用,在整个脚本的生命周期当中只执行一次。通常用作数值的初始化。(视情况而使用awake还是start)
    /// </summary>
    void Start()
    {
        print("Start");
    }

    ///<param name="Update"></param>
    /// <summary>
    /// 脚本组件启动的情况下 。
    /// 更新函数(方法),每帧执行一次,与帧率有关,与时间无关。Time.timeScale不会影响此方法。此方法用于处理游戏逻辑。
    /// </summary>
    void Update()
    {
        print("Update");
    }

    ///<param name="LateUpdate"></param>
    /// <summary>
    /// 在update之后执行,每帧执行一次,此方法通常用来处理摄像机的移动。防止出现摄像机到了指定的位置,而角色没有到达的空帧。
    /// </summary>
    private void LateUpdate()
    {
        print("LateUpdate");
    }

    ///<param name="OnGUI"></param>
    /// <summary>
    /// 每帧调用多次,用来绘制GUI。(看不到,UGUI可以看到)
    /// </summary>
    private void OnGUI()
    {
        print("OnGUI");
    }

    ///<param name="OnDisable"></param>
    /// <summary>
    /// 跟OnEnable对应,当关闭此脚本组件的时候调用,通常用来注销事件
    /// 在整个脚本生命周期当中会执行多次。
    /// </summary>
    private void OnDisable()
    {
        print("OnDisable");
    }

    ///<param name="OnDestroy"></param>
    /// <summary>
    /// 销毁函数,当此脚本的实例被销毁的时候调用。(1.删除此脚本组件 2.删除它所挂载的游戏对象 3.结束游戏或切换场景)(隐藏此脚本组件不会被调用)
    /// 一般处理一些善后的工作。(回收垃圾,清空内存,存储某些东西等等)
    /// </summary>
    private void OnDestroy()
    {
        print("OnDestroy");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值