.unity3d格式的导出与加载
来源:互联网 发布:李修贤 周星驰 知乎 编辑:程序博客网 时间:2024/05/21 06:58
1.导出。unity3d格式资源:
http://game.ceeger.com/Script/BuildPipeline/BuildPipeline.BuildAssetBundle.html
这里我稍微改了一点点~~~代码如下:
using UnityEngine;using UnityEditor;using System.IO;public class BuildAssetBundlesFromDirectory {[@MenuItem("Asset/Build AssetBundles From Directory of Files")]static void ExportAssetBundles () {// Get the selected directory//获取选择的目录string path = AssetDatabase.GetAssetPath(Selection.activeObject);Debug.Log("Selected Folder: " + path);if (path.Length != 0) {path = path.Replace("Assets/", "");string [] fileEntries = Directory.GetFiles(Application.dataPath+"/"+path);foreach(string fileName in fileEntries) {string filePath = fileName.Replace("\\","/");int index = filePath.LastIndexOf("/");filePath = filePath.Substring(index+1);Debug.Log("filePath:"+filePath);string localPath = "Assets/" + path+"/";if (index > 0)localPath += filePath;Object t = AssetDatabase.LoadMainAssetAtPath(localPath);if (t != null) {Debug.Log(t.name);string bundlePath = "Assets/" + path + "/" + t.name + ".unity3d";Debug.Log("Building bundle at: " + bundlePath);// Build the resource file from the active selection.//从激活的选择编译资源文件BuildPipeline.BuildAssetBundle(t, null, bundlePath, BuildAssetBundleOptions.CompleteAssets);} }}}}
注意:string filePath = fileName.Replace("\\","/"); 把“\”转化成“/”。“Assets/path/.prefab”和“path\.prefab”
把以上代码的脚本放到一个文件夹里面,选中该文件夹,再点击菜单栏上的按钮"Asset/Build AssetBundles From Directory of Files",就成功转成unity3d格式了
2.加载.unity3d:
function Start () {var www = new WWW ("file:///"+Application.dataPath+"/resourse/Cube.unity3d");yield www;Instantiate(www.assetBundle.mainAsset);}注:Application.dataPath获取改程序的资源路径。
function Start (){ var www = WWW.LoadFromCacheOrDownload("http://210.30.12.33:8080/YangChun/file/Cube.unity3d",5); yield www; if (www.error != null) { Debug.Log (www.error); return; } Instantiate(www.assetBundle.mainAsset);}
我试了一下用Resources类的方法还不能加载unity3d格式的文件。不过如果是本地加载的话直接加载prefab就可以了,用不着用unity3d格式了。貌似
LoadFromCacheOrDownload方法只能加载.unity3d格式文件,我用Tomcat服务器小测了一下,可以达到缓存的效果。
3.加载场景的话:
先把场景转化成unity3d格式的。
注:以下代码的脚本必须放在Editor文件夹下(如果没有改文件,新建一个就行),BuildTarget注意哈,转化成不同的平台~~~BuildTarget.Andrdoid
@MenuItem ("Build/BuildWebplayerStreamed")static function MyBuild(){var levels : String[] = ["Assets/yaya.unity"];BuildPipeline.BuildStreamedSceneAssetBundle( levels, "yaya.unity3d", BuildTarget.WebPlayer);//BuildTarget.Andrdoid}或者@MenuItem ("Build/BuildWebplayerStreamed")static function MyBuild(){BuildPipeline.BuildPlayer(["Assets/main.unity"],"VR.unity3d",BuildTarget.WebPlayer, BuildOptions.BuildAdditionalStreamedScenes); }function Start () {// Download compressed scene. If version 5 of the file named "Streamed-Level1.unity3d" was previously downloaded and cached.// Then Unity will completely skip the download and load the decompressed scene directly from disk.//下载压缩的场景。如果名为Streamed-Level1.unity3d的文件版本为5,预先下载并缓存。//然后Unity将完全跳过下载并直接从磁盘加载解压的场景。var download = WWW.LoadFromCacheOrDownload ("http://210.30.12.16:8080/chunge/yaya.unity3d", 5);yield download;// Handle errorif (download.error != null){Debug.LogError(download.error);return;}// In order to make the scene available from LoadLevel, we have to load the asset bundle.// The AssetBundle class also lets you force unload all assets and file storage once it is no longer needed.//为了使场景LoadLevel可用,必须加载资源包//AssetBundle类,还可以强制卸载所有的资源和文件存储,一旦不再需要。var bundle = download.assetBundle;// Load the level we have just downloaded//加载刚才下载的关卡Application.LoadLevel ("yaya");//这里面的“yaya”是指“Assets/yaya.unity”而不是指“yaya.unity3d”}
- .unity3d格式的导出与加载
- unity3d格式的导出与加载
- unity3d格式的导出与加载
- Unity3d Assetbundle文件的导出与加载
- Unity3d中信息的保存与加载
- unity3d 利用 itextSharp导出pdf格式
- matlab 数据的加载与导出
- hive数据的加载与导出
- 自定义Unity3d导出项目加载页面
- Unity3d 场景打包与加载
- Unity3d 5.x角色动画的创建与加载.
- Unity3d外部加载音频,视频,图片等资源 及根据路径获取制定格式的文件
- Unity3d导出Lightingmap的方法
- unity3D导出iOS的问题解决
- 将数据导出到excel与日期格式的设置
- MATLAB对tiff格式图像序列的读取与导出
- PHP导入与导出xml格式的Excel
- PHP导入与导出Xml格式的Excel
- 初学java
- 【转】最简化的Ubuntu 10.04下Redmine部署方法
- 深入研究java.lang.ThreadLocal类
- Qt创建文件夹
- 钩子
- .unity3d格式的导出与加载
- ubuntu11.04安装virtualbox4.0.12并识别USB
- SqlHelper中的cmd.Parameters.Clear()
- 推荐25个提高网站可用性和转化率的工具
- jni 类型转换
- Windows异常处理
- STL vector的erase操作问题
- JavaScript 图片滚动(绝对酷)
- 【转】16GB大内存该怎么玩儿?