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在底层实现了线程池,引擎底层来实现一些可使用多线程处理的任务。
  • 相关阅读:
    DVWA系列のSQL注射
    DVWA系列のCSRF&文件包含
    PHPSTORM+Xdebug配置
    Django 从入门到忘记学习笔记
    <双十一特辑> 模拟登录学校教务处爬取全校女生资料和头像
    zzcms7.2漏洞挖掘学习
    laravel5.3搭建过程中出现问题
    kali-linux简单学习
    linux学习二(小随笔)
    linux学习一
  • 原文地址:https://www.cnblogs.com/ChaoJieLiu/p/11876311.html
Copyright © 2011-2022 走看看