unity场景,素材导出工具


使用方法:
在unity的Project视图中,建立editor目录,建立javascript,将下面的代码拷入.
然后在出现的Level菜单下选择.
用于导出场景或Prefab,然后游戏运行时通过WWW类来加载.
祝大家开心.
#pragma strict
#pragma implicit
#pragma downcast
import System.Collections.Generic;
//////////////////////////////////////////////////////
///场景,组件,导出工具.
//////////////////////////////////////////////////////
/** 上次场景保存的名字 */
static var lastSceneName:String = "";
/** 常量 */
static var strSaveScene:String = "指定保存场景的位置";
/** 导出的场景后缀 */
static var strScenesAssetName = "unity3d";
/** 场景后缀 */
static var strSceneExtendName = "unity";
static var strSceneExportError = "no scene file!";
/**
	导出场景
*/
@MenuItem("Level4/Export/ExportScene")
static function BuildStreaedScene(){
	var pathList:List.<String> = new List.<String>();
	var objs:Object[] = Selection.GetFiltered(typeof(Object),SelectionMode.DeepAssets);
	for(var obj:UnityEngine.Object in objs){
		var path:String = AssetDatabase.GetAssetPath(obj);
		if(path.Contains(strSceneExtendName)){
			pathList.Add(path);
		}
	}
	if(pathList.Count > 0){
		var locationPath:String = EditorUtility.SaveFilePanel(strSaveScene,"",lastSceneName,strScenesAssetName);
		if(!String.IsNullOrEmpty(locationPath)){
			BuildPipeline.BuildStreamedSceneAssetBundle(pathList.ToArray(),locationPath,BuildTarget.WebPlayer);
			OpenDir(locationPath);
		}
	}else{
		Debug.Log(strSceneExportError);
	}
	pathList.Clear();
	pathList = null;
}
/**
	导出素材
*/
@MenuItem("Level4/Export/ExportResource")
static function ExportResource(){
	var path:String = EditorUtility.SaveFilePanel("导出","","资源名","unity3d");
	if(path.Length != 0){
		BuildPipeline.BuildAssetBundle(Selection.activeObject,Selection.objects,path);
	}
}
/**
	导出素材和素材依赖
*/
@MenuItem("Level4/Export/ExportResourceTrack Dependence")
static function ExportResourceTrack(){
	var path:String = EditorUtility.SaveFilePanel("导出","","资源名","unity3d");
	if(path.Length != 0){
		var objs:Object[] = Selection.GetFiltered(Object,SelectionMode.DeepAssets);
		BuildPipeline.BuildAssetBundle(Selection.activeObject,objs,path,BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets);
		Selection.objects = objs;
		//打开导出的目录
		OpenDir(path);
	}
}
/**
	打开目录
*/
static function OpenDir(path:String){
	path = System.IO.Directory.GetParent(path).ToString();
	System.Diagnostics.Process.Start(path);
}

你可能感兴趣的:(level,unity)