Unity3D运行时刻资源管理

2023-05-16

Unity运行时刻资源管理
----------------------------------------------------------------------------------------
Asset Bundles
    制作:BuildPipeline.BuildAssetBundle()
    加载:AssetBundle.Load()
    卸载:AssetBundle.Unload(bool unloadAllLoadedObjects)
        unloadAllLoadedObjects = true:释放解压数据,所有已实例化的资源亦被释放。
        unloadAllLoadedObjects = false:释放解压数据,已实例化的资源不释放。

Resource Folders
    制作:Project视图中任意名为“Resources”文件夹下的资源,无论场景中是否用到。
    加载:Resources.Load()
    卸载:Resources.UnloadUnusedAssets(),实例通过Object.Destroy()释放。
    工作方式:
        所有Resources资源及其相关资源都存储于resources.assets中,但如果有资源被某场景使用,该资源则被存储于该场景对应的sharedassets<0~n>.assets中。
        如果编译目标平台为Streaming Web Player,则情况略有不同。你可以在设置中通过First Streamed Level With Resources一项指定所有Resources资源跟随哪一场景(Level)加载。在该模式下,所有先于“First streamed Level”加载的场景,用到的Resource资源同上,都存储于其对应的sharedassets中;后于“First streamed Level”加载的场景,其用到的Resource资源,却存储于resources.assets中。
----------------------------------------------------------------------------------------

Streaming Web Players
    该模式中的Streaming是以场景(Level)为单位的,你可以在编译设置中指定各个场景的载入顺序,Unity Web Player会按该顺序自发异步加载各场景。同时,Unity也提供了通过WWW加载.unity3d场景文件的API,使开发者对场景加载有更灵活的控制权。
    实际上,WWW可以用于网络下载任意资源(纹理、文本、二进制文件),视频和音频也可以通过WWW下载,而且可以做到边下载边播放。

AssetBundle
----------------------------------------------------------------------------------------
想打包进AssetBundle中的二进制文件,其文件名后缀必须为“.bytes”,Unity会将其视为TextAssets对待。

AssetBundle bundle = www.assetBundle;
获取WWW.assetBundle的一刻,由WWW下载的数据压缩包被解压,AssetBundle对象被创建,此时你可以用AssetBundle.Load()实例化资源了。

除非使用AssetBundle.LoadAll()获取所有资源,否则无法得到一个AssetBundle中的资源列表。一般做法是在该AssetBundle中放置一个定好名称的TextAsset,在其中维护一份所有资源的名称列表。

一个AssetBundle包可以引用其他AssetBundle包中的资源。制作时,需要调用BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()函数对;加载时,被引用的包需要先于引用包加载。
另外,重编这种包需要开启BuildAssetBundleOptions.DeterministicAssetBundle,以保证每次重编时所使用的资源ID都是一样的。

你可以在一个游戏里使用另一个游戏的AssetBundle,前提是该AssetBundle中所引用的资源,要么存在于该AssetBundle中,要么已经被载入了游戏中。为确保AssetBundle引用的资源被编进同包中,制作时可以使用BuildAssetBundleOptions.CollectDependencies选项。
----------------------------------------------------------------------------------------

AssetDatabase
Unity Editor使用AssetDatabase维护项目中的所有资源文件,Unity使用这套API取代传统的filesystem。这是一个Editor类,所以只有在名为“Editor”的文件夹下的Script中才有用。

BuildPipeline.BuildStreamedSceneAssetBundle()或BuildPipeline.BuildPlayer(..., BuildOptions.BuildAdditionalStreamedScenes)生成的场景包,使用WWW下载后,只需调用WWW.assetBundle,而不需AssetBundle.LoadAll(),即可激活包中的场景,即调用WWW.assetBundle后,你就可以通过Application.LoadLevel()来载入场景了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D运行时刻资源管理 的相关文章

  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • unity 五种旋转方式localEulerAngles、eulerAngles、rotation、localRotation和Rotate的区别

    1 1 transform localEulerAngles 使用localEulerAngles进行旋转的时候 我们要使用transform localEulerAngles new Vector3 x y z 其中 new Vector
  • 树实现客户端红点系统

    树实现客户端红点系统 红点系统总览 demo 设计 代码设 引用 https zhuanlan zhihu com p 85978429 红点系统总览 如上图所示 规划红点系统的时候 我们将整个系统分为独立的三个部分 结构层 驱动层和表现层
  • Unity InputSystem 实现同一按键单击、双击、长按执行不同逻辑

    最近学习了一下Unity InputSystem 该系统可用于实现 管理复杂的操作逻辑 上限很高 但由于它有一定的学习成本 导致一些和我一样的小白一入门时不得要领 之前卡住我的一个需求就是通过InputSystem 实现同一按键单击 双击
  • Animator之RootMotion

    Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移 这个就是通过 applyRootMotion 来达成
  • Unity3d 简单的按照路径移动物体!

    在TORQUE引擎中 我们只要设置几个点 然后物体会按照这几个点顺序移动 Unity3d也可以的 现在介绍一个很简单的按照路径移动的方法 目标是让蓝色方块沿着紫色方块组成的路径移动 设计思想就是让蓝色方块移动第一个 然后继续移动到第二个 然
  • Unity3d中使用OnGUI()函数判断“键盘按下抬起”功能的新方法。

    private bool flagJudgeDownAllow true 开始值为true void OnGUI key Event current FunctionKeyCodeV1 key private void FunctionKe
  • untiy的纹理格式介绍

    Desktop RGB Compressed DXT1 压缩的RGB纹理 这是最常见的漫反射纹理格式 4位 像素 32 KB 256x256 RGBA Compressed DXT5 压缩的RGBA纹理 这是漫反射和高光控制纹理的主要格式
  • HLSL 偏导数 ddx / ddy

    HLSL ddx ddy 在光栅化的时刻 GPUs会在同一时刻并行运行很多Fragment Shader 但是并不是一个pixel一个pixel去执行的 而是将其组织在2x2的一组pixels分块中 去并行执行 偏导数就正好是计算的这一块像
  • 也想做一个绝地求生版的汽车控制移动,进来瞧瞧?(干货满满)

    控制车子移动 效果图附上 1 首先4个车轮复制一遍为车轮2备用 2 给车轮2全部添加wheel collider 只剩下车轮碰撞器和transform组件 3 给原版4个车轮添加脚本wheel 变量共有 面板赋值 依次添加车轮2里面的车轮c
  • Unity编辑器扩展——进度条显示通用方法

    在我们使用Unity编辑器扩展做一些批处理的工具时 通常会需要显示一个进度条 这样不会让Unity一直卡住不动 使得使用者不知道当前的进展 那么如何显示进度条呢 涉及的相关API有 EditorUtility ClearProgressBa
  • RAIN{INDIE} 自动寻路

    Unity游戏中有较多的自动寻路插件 看过几个 大同小异 而RAIN中的Behavior Tree感觉很好 听名字就知道很条理 下面 就用它做个简单的寻路小例子 首先 导入RAIN的包 结构如下 在使用的过程当中还会产生几个文件夹用来存放E
  • unity本地分数排行榜简单解决方案(Json)

    具体效果 大体方法 创建一个分数类Score和一个分数类的容器List
  • 【Unity灯光与渲染技术】Global Illumination全局光照

    本系列主要参考Unity灯光与渲染技术教程Unity Lighting And Rendering 同时会加上一点个人实践过程和理解 分割线 这篇文章主要讲全局光照 在看教程的时候就有一个点不是很理解 就是作者开启物体的static这个选项
  • Unity3D 官方文档 平台特殊化之Standalone和多显示器的处理

    版本 unity 5 6 语言 C 总起 Standalone 我一眼看下去的理解就是PC机平台 官方文档中说该平台指的是Mac Windows和Linux 这篇文章主要讲的是Standalone平台下的设置 通过点击菜单栏的File gt
  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity中UI组件

    一 Canvers 画布组件 Canvers下面是添加Button和Image组件 Rect Transform 1 Position 坐标位置 2 Width Height 高宽尺寸 3 Anchors 锚点 4 Pivot中心点 即UI
  • Mecanim Any State

    Any State表示任意状态 任意状态是 一个一直存在的特殊状态 他的存在是为了保证你在无意转移至某个你当前正处于的特殊状态而准备的 为你的状态机中的每个状态设置相同的对外转移是一个快捷的方式 假如有Walk Run Fly Die这四个

随机推荐

  • 3D Slicer/ITK-SNAP常见使用

    不是医生 是程序员 使用侧重点不一定相同 文章目录 1 3D Slicer使用 1 0 常见快捷键 1 1 三视图联动 1 2 在model视图查看三视图 1 3 最大化某个视图 1 4 改segment的标号 label 1 5 常见插件
  • 某些.csh .sh脚本无法在shell下执行的问题解决

    背景 最近换了一个环境 xff0c 登录后执行一个环境相关配置的 csh脚本时发现某些执行字段无法识别 xff0c 这种一般就是不同bash支持的脚本语言的差异问题 解决 查询当前shell的bash xff1a echo SHELL 当前
  • Linux 权能综述

    为了执行权限检查 xff0c 传统的 UNIX 实现区分两种类型的进程 xff1a 特权进程 xff08 其有效用户 ID 为0 xff0c 称为超级用户或 root xff09 xff0c 和非特权用户 xff08 其有效 UID 非0
  • EGL Context 创建

    继续 EGL context 创建的分析 eglInitialize 来看 EGL10 eglInitialize 的实现 com google android gles jni EGLImpl 中 xff0c 这个方法的实现如下 xff1
  • 【嵌入式】如何使用JLINK RTT打印log日志

    没有串口的情况下可以使用JLINK的RTT即 Real Time Transfer功能 RTT的工作原理大致就是在内存里面创建一个RTT控制块RTT Control Block xff0c 即SEGGER RTT CB结构体 这个结构体里面
  • Android R Settings搜索框功能流程

    Settings 搜索是调用的 SettingsIntelligence 应用的 SearchActivity xff0c 路径 xff1a android packages apps SettingsIntelligence 流程图如下
  • Android R 系统编译时 Lint 工具检查问题记录

    Android R上面对于系统api的修改变更有了新的检查方式 xff0c 对于代码静态检查变得更严格了 xff0c 代码中类型或是参数有些必须要添加 64 NonNull 等注释 xff0c 否则编译不过 编译报错日志大致如下 See t
  • Android 长时间待机后系统概率性无声

    之前一个高通平台项目出现这种问题 xff0c 查看log xff0c 发现出现异常的时候 xff0c 系统 audioserver 挂了 xff0c 导致 audioserver 挂了log 02 24 10 12 46 724 1041
  • 安卓更改app中状态栏和底部手机导航栏背景颜色

    相应的属性 xff1a 在res目录下的values文件夹中有一个styles xml文件 xff0c 它定义了一些安卓应用的布局样式 xff0c 如是否显示默认的actionbar xff1a span class token opera
  • 3.2多纹理效果的像素着色器

    3 2 多纹理效果的像素着色器 下面是像素着色器的代码 xff0c 该代码存储于 ps txt 中 xff0c 该像素着色器根据输入的两套纹理坐标对对应的纹理贴图进行采样 xff0c 根据一定比例 Scalar 混合后输出像素颜色 全局变量
  • 3.3应用程序

    3 3 应用程序 程序中我们首先创建一个四边形 xff0c 然后使用像素着色器进行纹理混合后对其进行渲染 下面是应用程序代码 xff1a 顶点格式定义 struct CUSTOMVERTEX 定点位置坐标 float x y z 两套纹理坐
  • ITK——5. 利用ITK自身的多线程加速filter计算

    文章目录 1 ITK多线程简介 1 1 平台多线程 1 1 1 基本内容 1 1 2 Intel的TBB 1 2 典型例子 执行原理 1 3 5 X版本之后的变动 1 4 ITK多线程整体认识 1 4 1 基本内容 1 4 2 过滤器级别的
  • 4.HLSL Effect(效果框架)

    4 HLSL Effect xff08 效果框架 xff09 进行到这里 xff0c 读者可能会觉得使用着色器多少有些繁琐 xff0c Effect xff08 效果框架 xff09 被提出以解决这些问题 作为一种方法 xff0c Effe
  • 4.2用Effect实现多纹理化效果

    4 2 用 Effect 实现多纹理化效果 前面我们介绍了一个使用像素着色器实现的多纹理化 xff0c 这里用 Effect 框架重新给于实现 xff0c 读者可以比较两者之间的异同 xff0c 体会 Effect 框架给我们带来了哪些方面
  • HLSL初级教程-结语,参考资料

    结语 至此 xff0c HLSL 初级内容介绍完毕 xff0c 相信读者已经对 HLSL 着色器 Effect 等概念有了比较深入的理解 xff0c 并且掌握了 HLSL 编程的基本方法 xff0c 文章中裁去了对 HLSL 语法等细节的讨
  • Unity 3D网页游戏 Demo 展示

    2011 年 xff0c 网页 3D 这一网游开发新趋势逐渐浮出水面 xff0c Unity 作为浏览器及移动设备 3D 引擎领域的佼佼者 xff0c 在国内开始崭露头角 我们团队也完成了首款 Unity Demo 的第一个版本 Demo
  • 用Ogre实现无缝地图

    用 Ogre 实现无缝地图 1 7 版本之前 xff0c 如果想用 Ogre 内建的地形系统实现一个像样的无缝地图 xff0c 恐怕要闹到抓狂 所幸 sinbad 在 1 7 为 Ogre 加入了全新的地形组件 xff0c 它囊括了一个地形
  • 一劳永逸地解决寻路问题

    一劳永逸地解决寻路问题 作者 xff1a PaulT 译者 xff1a trcj 原文 xff1a http www ai blog net archives 000152 html 通常我都会尽量避免对业内游戏产品或开发者们评头论足 但这
  • 口吐莲花

    久不更新blog xff0c 优狗 进展尚可 xff0c 新项目又开 xff0c 忙里偷闲想写点东西 xff0c 一时竟无从下笔 xff0c 以往那种花几天甚至几星期整理一篇技术文章的机会恐怕越来越少了 六月份 优狗 团队新入数名成员 xf
  • Unity3D运行时刻资源管理

    Unity运行时刻资源管理 Asset Bundles 制作 xff1a BuildPipeline BuildAssetBundle 加载 xff1a AssetBundle Load 卸载 xff1a AssetBundle Unloa