Unity中多线程设计与实现

本文探讨了Unity中多线程的使用,指出虽然在主线程外不能直接访问Unity组件,但可以开启辅助线程进行大量数据计算、IO操作和资源解压缩等任务。通过实例展示了如何在Unity中实现多线程处理,同时提醒在Update函数中遍历时考虑内存效率问题。
摘要由CSDN通过智能技术生成

前言

因为项目后期,好久没有更博了。最近项目推上线了,突然闲下来了。想写的东西很多。就先从多线程开始吧。
个人对线程的理解还不够透彻,希望如果有更好的看法可以在评论区提出,感谢。

什么多线程

在一个程序中,一些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”(Multithreading)。

在Unity中使用多线程能干什么?

  1. 使用Unity开发的应用,只能在主线程中访问Unity组件,这一点限制了部分的优化。不过小伙伴可以开一些辅助线程。

  2. 允许开线程来辅助的功能业务

    • 大量的数据计算 (eg. A*寻路算法之类的)
    • IO操作
    • 解压缩资源
    • 不涉及Unity组件的资源加载(Ps.关于涉及Unity组件的加载可以通过逻辑剥离来实现,这边只抛出一个idea供大家发散。)

举栗子的时间到了

  • 首先就是继承MonoBehaviour啦。
/*----------------------------------------------------------------
            // Copyright © 2016 Jhon
            // 
            // FileName: Loom.cs
            // Describle:
            // Created By:  Jhon
            // Date&Time:  2016年10月14日 17:31:26
            // Modify History: 
            //
//--------------------------------------------------------------*/
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.Threading;

public class Loom : MonoBehaviour
{

}
  • 定义一个线程处理的 Item 结构,以及变量的定义。
#region StructMember
    public struct DelayedQueueItem
    {
        public float time;
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值