当前位置: 首页 > article >正文

异步加载和协程+Unity特殊文件夹

异步加载

        不会引起代码阻塞;

协程

协程:协程不是多线程,是假的“多线程”;

        应用场景:1.www 加载网络数据; 2.异步加载资源、场景;

一、协程声明函数:

WWW www;
AsyncOperation ASYNC;  //该两条声明为异步数据
IEnumerator PrintA(int x){
    Debug.Log("Print A---------1111:"+x);
    //StartCoroutine("PrintB");
    yield return new WaitForSeconds(1);
    yield return new WaitForEndOfFrame();  //运行到当前帧最后执行;
    yield return new WaitForFixedUpdate();   //0.02s
    yield return null;   //等一帧
    yield break;   //直接跳出协程
    yield return www;
    yield return ASYNC;
    Debug.Log("Print A---------2222");
}

二、启动协程函数 

        方法1:StartCoroutine("PrintA",4);

        方法2:StartCoroutine(Print(4));  //(不建议使用)

三、协程的启动与关闭

//StartCoroutine("PrintA",4);
//StopCoroutine("PrintA");    //能关闭协程

StartCoroutine(PrintA());
//StopCoroutine(PrintA()); //不能关闭协程,只能通过StopAllCoroutines关闭

//IEnumerator ie=PrintA();
//StartCoroutine(ie);
//StopCoroutine(ie);  //该方法能关闭协程


StopAllCoroutines(); //关闭所有已经开启的协程(实际开发时不建议使用)

四、协程是否失效

        当协程开启后,当前代码组件失活,不影响协程继续执行; 

        当协程开启后,当前代码组件销毁,协程就不继续执行;

        当协程开启后,当前代码组件所在游戏物体失活,协程就不继续执行;(和延迟函数不同)

                所以以后有协程的代码不能挂在经常失活或者激活的游戏物体上;

五、yield return

六、协程异步加载Resources资源 

ResourceRequest rr=null;
IEnumerator ResourcesLoad(string path){
    rr=Resources.LoadAsync(path);
    yield return rr;
}
Unity的特殊文件夹 

Resources:资源文件夹,可以通过路径直接用API Resources进行加载;

工程文件打包时,不在特殊文件夹时,跟其他文件都没有依赖关系时,此资源不会打进包;

但是Resources文件内,无论是否跟其他资源有依赖关系,都会打进包;

为了减小包体大小,Resources不能乱放资源。

Standard Assets:默认文件夹,此文件夹内资源会被优先编译。

Plugins:插件一般放这个文件夹,还有一些Android和ios平台区分的文件;

Editor:存放Unity工具类,这个文件夹内所有资源都不会打进包;

Application.persistentDataPath:固定数据路径

该系列专栏为网课课程笔记,仅用于学习参考。 


http://www.kler.cn/a/543338.html

相关文章:

  • 读书笔记分享
  • 通过C模块中的Python API访问数组的数组
  • 【Python】集合
  • Spring中常见的设计模式
  • 基于 STM32 平台的音频特征提取与歌曲风格智能识别系统
  • MybatisPlus常用增删改查
  • 不小心删除服务[null]后,git bash出现错误
  • Kimi-1.5与DeepSeek-R1:谁是AI推理的王者?
  • 脉冲当量含义
  • HCIA项目实践--静态路由的拓展配置
  • 【优选算法】DC-Quicksort-Mysteries:分治-快排的算法之迷
  • 利用公共无标签数据:基于 Frangi 滤波器的预训练网络用于 3D 脑血管分割 |文献速递-医学影像人工智能进展
  • 数据结构——【二叉树模版】
  • QML的属性绑定
  • Streamlit快速构建大模型前端框架
  • ArcGIS基础知识之ArcMap基础设置——ArcMap选项:常规选项卡设置及作用
  • 计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)
  • 2024主流Web框架横向对比:Gin、Laravel、ThinkPHP、Spring Boot及更多框架的选型指南
  • 二、数据类型、运算符
  • 使用DeepSeek R1打造私有化AI助手
  • 安科瑞光伏发电防逆流解决方案——守护电网安全,提升能源效率
  • 激光工控机在精密制造中的应用与优势
  • JAVA/RUST/C#/Kotlin 各语言语法糖及特性对比表
  • 【JavaScript】异步编程汇总
  • Lua语言的安全开发
  • 一文讲清springboot所有注解