1. 程式人生 > >unity場景和資源打包

unity場景和資源打包

using UnityEngine;
using UnityEditor;
using System.Collections;

#if UNITY_EDITOR
public class CreatScensAndBunddle : MonoBehaviour {

    [MenuItem("Assets/資源打包")]
    static void BuildAllAssetBundles_pc()
    {
        BuildTarget targetPlatform = BuildTarget.StandaloneWindows64;
        BuildAssetBundleOptions assetBundleOptions = BuildAssetBundleOptions.None;
        string outputPath = Application.dataPath + "/MyAssets";
        //string outputPath = Application.dataPath + "/StreamingAssets/WebGL";
        BuildPipeline.BuildAssetBundles(outputPath, assetBundleOptions, targetPlatform);
    }


    [MenuItem("Assets/場景選擇打包")]
    static void MyBuild()
    {
        var path2 = EditorUtility.OpenFilePanel("開啟我們的UNITY場景", "", "unity");     //場景選擇
        string[] paths = path2.Split('/');
        string MyScens = paths[paths.Length - 1];
        string MysecnsName = MyScens.Split('.')[0];
        Debug.Log(MysecnsName);
        // 需要打包的場景名字

        string[] levels = { "Assets/" + MysecnsName + ".unity" };        
        // 注意這裡【區別】通常我們打包,第2個引數都是指定資料夾目錄,在此方法中,此引數表示具體【打包後文件的名字】
        // 記得指定目標平臺,不同平臺的打包檔案是不可以通用的。最後的BuildOptions要選擇流格式
        BuildPipeline.BuildPlayer(levels, Application.dataPath + "/" + MysecnsName + ".unity3d", BuildTarget.StandaloneWindows64, BuildOptions.BuildAdditionalStreamedScenes);
        // 重新整理,可以直接在Unity工程中看見打包後的檔案
        AssetDatabase.Refresh();

    }
}
#endif