unity学习笔记(脚本生命周期)

我的未来我决定 提交于 2020-02-07 04:04:05

脚本生命周期

在这里插入图片描述

脚本代码使用技巧

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


/// <summary>
/// 
/// </summary>
public class LifeCycle : MonoBehaviour
{
    public int a = 100;
    //序列化字段 作用:在编辑器中显示私有变量
    [SerializeField]
    private int b;
    //作用:在编译器中隐藏字段
    [HideInInspector]
    public int c;
    //设置数据范围
    [Range(0,100)]
    public int d;

    public LifeCycle()
    {
        //Debug.Log("Hello");
    }

    //初始阶段
    //执行时机:创建游戏对象--》立即执行(早于Start)
    //作用:初始化
    private void Awake()
    {
        //Debug.Log("Awake--" + Time.time);
    }
    //执行时机:创建游戏对象--》脚本启用--》才执行
    //作用:初始化
    private void Start()
    {
        //Debug.Log("Start--" + Time.time);
    }

    //物理阶段
    //执行时机:每隔固定时间(默认0.02s)执行一次。(时间可以修改)
    //适用性:适合对物体做物理操作(移动、旋转.......),不会受到渲染影响
    private void FixedUpdate()
    {//渲染时间不固定(每帧渲染量不同、机器性能不同)
        //Debug.Log("FixedUpdate--" + Time.time);
    }
    //执行时机:渲染帧执行,执行间隔不固定
    //适用性:处理游戏逻辑
    private void Update()
    {
        //渲染时间不固定(每帧渲染量不同、机器性能不同)
        //Debug.Log("Update--" + Time.time);
    }

    private void OnMouseDown()
    {
        Debug.Log("click!!!");
    }
}

初始阶段

·Awake唤醒:
当物体载入时立即调用1次;常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本 this.enable=true。
·OnEnable 当可用:
每当脚本对象启用时调用。
·Start开始:
物体载入且脚本对象启用时被调用1次。常用于数据或游戏逻辑初始化,执行时机晚于Awake。

物理阶段

·FixedUpdate 固定更新:
脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如移动等。
设置更新频率:“Edit”–>“Project Setting”–>
“Time”–>"Fixed Timestep"值,默认为0.02s.
·OnCollisionXXX碰撞:
当满足碰撞条件时调用。
·OnTriggerXXX触发:
当满足触发条件时调用。

游戏逻辑

·Update更新:
脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关。
·LateUpdate 延迟更新
在Update函数被调用后执行,适用于跟随逻辑。

输入事件

·OnMouseEnter鼠标移入:
鼠标移入到当前Collider时调用。
·OnMouseOver鼠标经过:
鼠标经过当前 Collider 时调用。
·OnMouseExit 鼠标离开:
鼠标离开当前Collider时调用。
·OnMouseDown 鼠标按下:
鼠标按下当前Collider时调用。
·OnMouseUp鼠标抬起:
鼠标在当前Collider 上抬起时调用。

场景渲染

·OnBecameVisible 当可见:
当Mesh Renderer 在任何相机上可见时调用。
·OnBecamelnvisible当不可见:
当Mesh Renderer 在任何相机上都不可见时调用。

结束阶段

·OnDisable当不可用:
对象变为不可用或附属游戏对象非激活状态时此函数被调用。
·Onpestroy当销毁:
当脚本销毁或附属的游戏对象被销毁时被调用。
·OnApplicationQuit 当程序结束:
应用程序退出时被调用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!