zoukankan      html  css  js  c++  java
  • 帧循环和主线程

    概念

    • Unity主线程:为保证数据安全,Unity核心的游戏逻辑全部都是在一个线程里完成,即Unity主线程
    • 帧循环:在主线程上运行一次完整的游戏逻辑, 称为完成一次帧循环。

    注意

    • 一个逻辑帧通常指一次包含了以Update()为主的循环调用过程。因为我们游戏的逻辑大部分都是在Update()里面
    • 一个逻辑帧里面可能包含了多次FixedUpdate()的调用。
    • Unity中是可以使用多线程的,但需要注意在Unity里一些关键性的数据在其它线程是不能访问修改的。
        private void Start() 
        {
            ThreadStart threadStart = new ThreadStart(ThreadMain);
            Thread thread = new Thread(threadStart);
            thread.Start();
            Debug.Log("UnityMain线程ID:" + Thread.CurrentThread.ManagedThreadId.ToString());
        }
    
        private void ThreadMain() 
        {
            Debug.Log("New线程ID:" + Thread.CurrentThread.ManagedThreadId.ToString());
            //运行会报错:get_transform can only be called from the main thread.
            Debug.Log(transform.gameObject.name);
        }
    

    Unity限制使用多线程的原因

    • 保证数据安全
    • 降低编程难度

    为何还能保持高效率的运行?

    • Unity在底层实现了线程池,引擎底层来实现一些可使用多线程处理的任务。
  • 相关阅读:
    目标检测中roi的有关操作
    JavaScript高级程序设计读后感(一)
    手机app后台初学
    DTO数据传输对象
    数据库设计系列之四--ER图
    数据库设计系列之三
    数据库设计系列之二
    数据库设计系列之一
    Linux命令大全
    Linux登录密码修改
  • 原文地址:https://www.cnblogs.com/ChaoJieLiu/p/11876311.html
Copyright © 2011-2022 走看看