关于Unity脚本的函数的执行顺序 您所在的位置:网站首页 unity脚本执行顺序 关于Unity脚本的函数的执行顺序

关于Unity脚本的函数的执行顺序

#关于Unity脚本的函数的执行顺序| 来源: 网络整理| 查看: 265

分类:系统认知,反射

标签:Unity C# 反射 GameObject

众所周知,在Unity中实现像Ue4的蓝图构造函数是很麻烦的,所以Unity自有的是prefab的解决方案,但是对于一些在UE4里面很方便就能实现的曲线工具来讲,unity就显得力不从心,关键还是工具链完整性的问题,unity给了很高的自由度,以至于像这种类型的工具都需要自行编辑接上。

为了更好的熟悉unity脚本的函数执行顺序,根据网上一些博客参考,新建了一个脚本用于处理这种事情

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class lfy_UnityConstrust : MonoBehaviour

{

    static int i;

    bool IsStart;

    bool FixedStart;

    public lfy_UnityConstrust()

    {

        i += 1;

        IsStart = true;

        FixedStart = true;

        Debug.Log("ConstructFuc" + i);

    }

    public void Awake()

    {

        Debug.Log("AwakeFuc" + i);

    }

    // Start is called before the first frame update

    void Start()

    {

        Debug.Log("StartFuc" + i); 

    }

    // Update is called once per frame

    void Update()

    {

        if(IsStart)

        {

            Debug.Log("UpdateFuc" + i);

            IsStart = false;

        }

    }

    private void FixedUpdate()

    {

        if(FixedStart)

        {

            Debug.Log("FixedUpdateFuc" + i);

            FixedStart = false;

        }

    }

}

此脚本在unity中运行所得的结果如下

图为执行结果

分析出Unity的脚本执行顺序

Unity反射

可以看到构造函数被调用了3次,分别是游戏运行,初始化GameObject,退出游戏或销毁

由此,可以得到Unity脚本的函数执行顺序

除此之外,还有

On Enable :在Awake和Start之间执行,是每次脚本可用后都会执行一次的函数,由于脚本是可关闭的,所以这个函数可以反复执行

Late Update :在 Update 之后才执行的 Update 类型函数,可以通过修改project>>time里面 Fixed Timestep 设置每隔多久更新一次,通常是用于物理脚本更新(指和硬件通信时使用硬件的更新频率传输数据)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有