`
vanadiumlin
  • 浏览: 504906 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

unity3D制作并使用Assetbundles方法

 
阅读更多

在网页中为了控制.unity文件的大小,加速载入速度,可以把系统用到的资源制作成Assestbundles,根据需要进行动态的加载和卸载。具体作法:

1、使用脚本重新定义系统菜单,添加一个制作Assetbunles的菜单命令:
// C# Example
// Builds an asset bundle from the selected objects in the project view.
// Once compiled go to "Menu" -> "Assets" and select one of the choices
// to build the Asset Bundle
 
using UnityEngine;
using UnityEditor;
 
public class ExportAssetBundles {
[MenuItem("Assets/Build AssetBundle From Selection - Track dependencies")]
static void ExportResource () {
// Bring up save panel
string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
if (path.Length != 0) {
// Build the resource file from the active selection.
Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
Selection.objects = selection;
}
}
[MenuItem("Assets/Build AssetBundle From Selection - No dependency tracking")]
static void ExportResourceNoTrack () {
// Bring up save panel
string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
if (path.Length != 0) {
// Build the resource file from the active selection.
BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path);
}
}
}
以上脚本按类命名后放置在工程文件夹内Assets目录内的Edit文件夹内(如没有,自行新建)。这时如脚本描述的在菜单栏内的Assets下会出现Build AssetBundle From Selection的两个菜单,选中需要制作Assetbunles的资源生成即可。
2、使用www按需载入Assetbundle,举例如下
function Start () {
var url = "file:///D:/temp/XXX.unity3d";
StartCoroutine(LoadAsset(url));
}
function LoadAsset (url : String) {
var www : WWW = new WWW (url);
yield www;
var present : GameObject;
present = GameObject.Find("present");
if( present != null )
Destroy(present);
present = Instantiate(www.assetBundle.mainAsset);
present.name = "present"; //暂时把名字叫做“present”
}
分享到:
评论

相关推荐

    Unity3D制作并使用Assetbundles方法1

    制作AssetBundles的过程分为以下几个步骤: 1. **创建AssetBundle菜单命令**: 在提供的代码示例中,我们看到一个名为`ExportAssetBundles`的C#脚本,它扩展了Unity编辑器的菜单,添加了两个选项来创建...

    unity3d打包工具AssetBundles-Browser-master

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏制作、虚拟现实(VR)、增强现实(AR)等领域。在开发过程中,为了优化资源管理和降低加载时间,Unity3D引入了AssetBundles系统。AssetBundles-Browser是...

    Unity3D((5.X-2019)版本游戏源码(5.5)精品珍藏级汉堡餐厅经营游戏

    Unity3D提供了一系列工具和技术来帮助开发者优化资源加载流程,如AssetBundles、StreamingAssets等。 6. **多平台发布**:考虑到游戏的目标市场可能覆盖多个平台,Unity3D的强大之处在于其支持一次性开发,多平台...

    Unity3D实现资源动态加载Demo

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏制作、虚拟现实以及增强现实等领域。在游戏开发过程中,资源动态加载是一项重要的技术,它能够优化游戏性能,减少启动时的加载时间,提升用户体验。本Demo将...

    Unity3D面试题.pdf

    Prefab(预设)是Unity3D中一种用于创建可重复使用的对象实例的方法。它允许开发者将带有所有组件和设置的游戏对象保存为模板,然后在游戏开发过程中多次实例化这些模板,从而避免重复配置相同的游戏对象。Prefab...

    unity3d 常用代码库

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏、实时可视化应用及虚拟现实体验。在Unity3d开发过程中,有一套成熟的代码库是至关重要的,可以大大提高开发效率和代码质量。"unity3d 常用代码库...

    Unity3D.4.0.0f7 简体中文汉化补丁

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D的互动内容,包括游戏、虚拟现实(VR)和增强现实(AR)应用。4.0.0f7是Unity的一个特定版本,发布于2012年,为开发者提供了许多创新功能和改进。 汉化...

    Unity3d面试题总结

    #### 六、Unity3D实现2D游戏的方法 1. **使用GUI**: 通过Unity的GUI系统构建用户界面。 2. **正交投影**: 设置摄像机为正交投影模式,忽略Z轴。 3. **使用2D插件**: 如2D Toolkit等专门针对2D游戏开发的插件。 ####...

    unity3d 换装系统

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏、虚拟现实体验以及增强现实应用。在Unity3D中实现换装系统是游戏开发中的常见需求,尤其是角色扮演类游戏,它能极大地提升玩家的沉浸感和交互体验。...

    网络游戏-一种基于Unity3D游戏引擎的游戏系统.zip

    Unity3D是一款强大的跨平台游戏开发工具,广泛应用于制作2D和3D的网络游戏、手机游戏以及桌面游戏。它以其高效、易用性以及丰富的功能集而受到开发者们的青睐。"网络游戏-一种基于Unity3D游戏引擎的游戏系统.zip"这...

    Unity加载和内存管理全面理解

    本文将深入探讨Unity3D中的两种动态加载机制:Resources.Load和AssetBundle,以及如何使用它们进行资源管理和优化。 首先,我们来了解Resources.Load。这是Unity提供的一个简单易用的资源加载方法,它允许开发者从...

    Unity制作的简易SRPG DEMO

    1. **Unity引擎**:Unity是一款跨平台的游戏开发工具,支持2D和3D游戏制作,广泛应用于游戏开发、虚拟现实和增强现实等领域。它采用C#作为主要编程语言,提供了可视化编辑器和强大的资源管理。 2. **寻路算法**:在...

    Unity游戏源码汉堡餐厅经营游戏

    Unity是一款非常流行的跨平台游戏开发引擎,被广泛应用于2D和3D游戏的制作中。它支持多种编程语言,如C#,并且提供了丰富的图形渲染、物理模拟等功能,使得开发者能够快速构建出高质量的游戏作品。 本次介绍的...

    unity4.3从文件压缩到内存再从内存解压到文件 Assetbundle 源码

    Unity3D是一款强大的跨平台游戏开发引擎,广泛用于制作2D和3D游戏以及互动式内容。在Unity中,AssetBundle是一种资源管理机制,它允许开发者将游戏中的资源(如模型、纹理、音频等)打包成独立的文件,以便于在运行...

    Unity 照片墙 亲测好用 真实项目

    Unity是一款强大的跨平台3D游戏开发引擎,广泛应用于游戏制作、虚拟现实(VR)、增强现实(AR)以及可视化应用等领域。在"Unity 照片墙 亲测好用 真实项目"这个主题中,我们可以了解到如何在Unity中创建一个交互式的...

    Unity游戏源码草莓消除游戏模板BerryMatch-Threev4.2

    - **资源打包**:使用AssetBundles技术,对游戏资源进行打包处理,便于后续更新维护。 - **纹理压缩**:针对大量使用的纹理图片进行压缩处理,减少内存占用。 - **模型优化**:对3D模型进行简化处理,降低多边形数量...

    工程制图项目规范流程 1

    工程制图项目规范流程是确保模型制作和管理的标准化,以提高工作效率和质量。以下是整个流程的详细步骤: 1. **教材习题集模型梳理**: - 首先,对比模型Excel列表与教材,确认模型无重复、过复杂或缺失相关图。 ...

    vigila-el-cortijo:Gañan策略生存游戏,专为Ludum Dare#46设计

    2. **Unity引擎**:Unity是一个跨平台的游戏开发工具,支持2D和3D游戏开发,其内置的C#脚本系统使得开发者可以方便地控制游戏逻辑。在"vigila-el-cortijo"中,开发者可能利用Unity的场景管理、物理引擎、动画系统...

Global site tag (gtag.js) - Google Analytics