首页 > 其他分享 >unity3D制作并使用Assetbundles方法

unity3D制作并使用Assetbundles方法

时间:2023-07-13 19:32:02浏览次数:34  
标签:unity3D Selection Assets selection Build Assetbundles path 制作 present


在网页中为了控制.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"; 
   
 
   
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,Selection,Assets,selection,Build,Assetbundles,path,制作,present
From: https://blog.51cto.com/u_1044274/6715592

相关文章

  • 现有Linux系统制作ISO镜像——使用Mondo Rescue
    MondoRescue是什么?MondoRescue(简称Mondo):是一款开源免费的故障恢复和备份工具,可以说是Linux操作系统下的Ghost,你可以轻松地创建系统(Linux或Windows)克隆或备份的ISO镜像,可以将这些镜像存放在CD、DVD、磁带、USB设备、硬盘和NFS上。万一数据丢失了,你将能够可以从备......
  • 学会这5个关键要素,成为原型图制作的专家!
    在当今的软件开发和用户体验设计中,原型图扮演着至关重要的角色。它是将想法转化为可视化概念的关键步骤,旨在帮助设计师、开发人员和企业更好地理解和验证产品的功能、交互和用户流程。本文将深入探讨制作原型图的五个关键要素,以帮助你在设计过程中更加高效和专业。 在介绍制作......
  • P6775 NOI2020 制作菜品
    P6775NOI2020制作菜品给定正整数\(n\),\(m\),\(k\)。有一个\(m\)行\(k\)列网格,每个网格可以被涂上\(n\)种颜色之一,要求:一行最多出现两种颜色。第\(i\)种颜色必须恰好被使用\(a_i\)次。\(\{a_i\}\)给定,保证\(\suma_i=m\timesk\)。请构造涂色方案或判定不......
  • 如何使用Python制作交互式股票K线图?
    如何使用Python制作交互式股票K线图?如何使用Python制作交互式股票K线图?-知乎(zhihu.com)州的先生  在之前的文章中,我们介绍了使用PyQtGraph在PyQt5中绘制股票K线图:PythonGUI教程(十三):在GUI中使用pyqtgraph绘图库​zmister.com/archives/187.html以及使......
  • 网页设计制作工具推荐主流的8款
    过去,专业人员使用HTMLL、CSS、Javascript等代码手动编写和构建网站。现在有越来越多的智能网页制作工具来帮助任何人实现零代码基础,随意建立和设计网站。在本文中,我们将向您介绍2023年流行的网页制作工具。我相信一旦选择了正确的网页制作工具,你的设计之路就会更容易!1.即时设计......
  • Unity3D_根据不同的屏幕缩放UI(在横屏上运行竖屏软件)
    一、首先我们创建一个1080*1920分辨率的场景 效果如下二、随便添加一张UI图片三、打包出来看效果(我们发现UI显示不全,这是因为UI的尺寸任然是1080*1920,而我们的电脑是1920*1080) 四、我们在Unity中做以下设置1.选中游戏物体Canvas2.点击组件CanvasScaler上的UISc......
  • Unity3D 游戏实战开发之英雄联盟
    本次游戏项目为类dota游戏中的经典之作《英雄联盟》,向经典致敬。通过本次课程,你会学到网游开发模式、C#服务器开发、协议定制、Unity5.0新特性开发、UGUI应用、同步方案、解决问题思路、各种扩展工具的开发………! 演示地址:www.runruncode.com/video-game/19444.html ......
  • 前端色环制作的方式
    需求背景最近有个项目中有个功能需要在浏览器上实现图片颜色任意变化,并且不会出现卡顿,要向德芙一样的丝滑思路最开始的思路使用canvas+js的方式实现github地址:https://github.com/miniflycn/JsCV这个方式好处就是canvase绘制的图片不会失真,缺点就是图像越精细,变动越大,canvas......
  • 如何制作一个超低功耗的高保真的数字录音机
    前记 您是否曾经想过购买一台小型录音机来录制环境中的声音并将其存储在内存中?其实这只需执行几个简单的步骤即可轻松制作自己的录音机。该项目主要是用来指导学生做一个课题,也可以将其用做商业用途。该模块的使用两颗超低功耗的芯片做主体,一个做音频采集并将所记录的语音存储......
  • Unity3D高级编程主程手记 学习笔记五:网络通讯
    1.C#实现TCP1.1实现所需APIC#提供了TCP的Socket连接API。一般的游戏项目我们不会使用阻塞方式连接和接收。因为我们不会让游戏卡住等待传输链接,大多数情况下我们还是会使用更加平滑的异步操作作为网络连接和收发的操作。常用的API如下:BeginConnect:开始连接Be......