static void UploadToServer() { string serverPath = "D:\\wamp\\www\\SuperWings\\main\\" + AppV + "\\" + CodeV; string ResPath = serverPath + "\\" + ResV; if (FileTools.IsDirectoryExist(ResPath)) { EditorUtility.DisplayDialog("提示", "资源版本" + AppV + "." + CodeV + "." + ResV + "已经存在!", "确定"); return; } FileTools.CreateDirectory(ResPath); string info = File.ReadAllText(Path.Combine(AssetOutPath, ResInfoName)); ResourceInfo itemInfo = JsonUtility.FromJson <ResourceInfo> (info); BundleNames.Clear(); for (int i = 0; i < itemInfo.ResList.Count; i++) { if (itemInfo.ResList [i].IsAsset) { BundleNames.Add(itemInfo.ResList [i].Name); } //AddBundleName (itemInfo.ResList [i]); } ZipFileToServer(ResPath); CreateUpdateFile(ResPath, itemInfo); FileTools.CopyFile(FileTools.CombinePath(AssetOutPath, ResInfoName), FileTools.CombinePath(serverPath, ResInfoName)); EditorUtility.DisplayDialog("提示", "上传完成!", "确定"); }
static void ZipAndCopy(string outPath, string name) { string outP = GetOutPath(CreateAssetBundle.AssetPath); string resP = Path.Combine(outP, name + CreateAssetBundle.ResInfoName); string info = File.ReadAllText(Path.Combine(outP, name + CreateAssetBundle.ResInfoName)); ResourceInfo itemInfo = JsonUtility.FromJson <ResourceInfo> (info); BundleNames.Clear(); for (int i = 0; i < itemInfo.ResList.Count; i++) { if (itemInfo.ResList [i].IsAsset) { BundleNames.Add(itemInfo.ResList [i].Name); string filePath = Path.Combine(outP, itemInfo.ResList[i].Name); long size = FileTools.GetFileSize(filePath); itemInfo.ResLength += size; } } CreateAssetBundle.SaveResInfoFile(FileTools.CombinePath(outP, name + CreateAssetBundle.ResInfoName), itemInfo); BundleNames.Add(name + CreateAssetBundle.ResInfoName); string zipPath = Path.Combine(outPath, name + ".zip"); ZipUtils.CreateZipFile(zipPath, outP, BundleNames); }
static void CreateUpdateFile(string path, ResourceInfo resInfo) { string updatePath = FileTools.CombinePath(path, UpdateFileName); resInfo.ResLength = 0; using (StreamWriter streamWriter = new StreamWriter(updatePath, false)) { string[] files = Directory.GetFiles(path); for (int i = 0; i < files.Length; i++) { string fileName = Path.GetFileName(files[i]); if (fileName.IndexOf(AssetHeplerEditor.GetPlatformName()) >= 0 || fileName.IndexOf(".meta") >= 0 || fileName.IndexOf(".manifest") >= 0 || !BundleNames.Contains(fileName)) { //文件夹名称的AssetBundle排除 continue; } if (fileName == ResInfoName || fileName == UpdateFileName) { continue; } string md5 = FileTools.GetMD5(Path.Combine(AssetOutPath, fileName)); string filePath = Path.Combine(path, fileName); long size = FileTools.GetFileSize(filePath); resInfo.ResLength += size; string value = fileName + ";" + size + ";" + md5; streamWriter.WriteLine(value); streamWriter.Flush(); } } }
static void CopyToSteaming(string rootName, string name) { string ResPath = FileTools.CombinePath(Application.streamingAssetsPath, CreateAssetBundle.AssetPath); FileTools.CreateDirectory(ResPath); ZipAndCopy(ResPath, name); }
public static void ClearAssetName(string path, ResourceInfo info) { //清除AssetBundle的名字 for (int i = 0; i < info.ResList.Count; i++) { AssetHeplerEditor.SetAssetBundleName(FileTools.CombinePath(RootPath + path, info.ResList[i].Path), ""); //SetAssetNameToNull (mResourceInfo.ResList[i]); } }
static void UploadAsset(string rootName, string name, int codeV, int resV) { string ResPath = "D:\\Game\\" + name + "\\" + codeV; FileTools.CreateDirectory(ResPath); ZipAndCopy(ResPath, name); string outP = GetOutPath(CreateAssetBundle.AssetPath); string resP = Path.Combine(outP, name + CreateAssetBundle.ResInfoName); FileTools.CopyFile(resP, FileTools.CombinePath(ResPath, name + CreateAssetBundle.ResInfoName)); EditorUtility.DisplayDialog("提示", "上传完成!", "确定"); }
public void ImageConverTest() { //注意:这里不能为null Texture2D t2d = new Texture2D(2, 2); byte[] bfs = File.ReadAllBytes(FileTools.CombinePath(Application.streamingAssetsPath, "test.jpg")); if (ImageConversion.LoadImage(t2d, bfs)) { render.material.mainTexture = t2d; } else { Debug.Log("解析失败"); } }
static void ZipFileToServer(string serverPath) { string[] files = Directory.GetFiles(AssetOutPath); for (int i = 0; i < files.Length; i++) { string fileName = Path.GetFileName(files [i]); if (fileName.IndexOf(AssetHeplerEditor.GetPlatformName()) >= 0 || fileName.IndexOf(".meta") >= 0 || fileName.IndexOf(".manifest") >= 0 || !BundleNames.Contains(fileName)) { //文件夹名称的AssetBundle排除 continue; } if (fileName == ResInfoName) { continue; } string dp = FileTools.CombinePath(serverPath, fileName); ZipUtils.CompressFile(files[i], dp); } }
static void CreateAsset(string rootName, string name, int appV, int codeV, int resV) { PublishEditor.MoveResToModuleAsset(name); BundleNames.Clear(); ResourceInfo resInfo = new ResourceInfo(); resInfo.AppVersion = appV; resInfo.CodeVersion = codeV; resInfo.ResVersion = resV; resInfo.ResList = new List <ResourceItemInfo> (); ResourceItemInfo item = new ResourceItemInfo(); item.Path = name; item.Name = name; item.IsResident = false; GetResItemInfo(resInfo, item.Path, false, BundleNames); item.ResNames = new List <string> (); resInfo.ResList.Add(item); item.IsAsset = AssetHeplerEditor.SetAssetBundleName("Assets/" + rootName + "/" + name, item.Name, item.ResNames); string outP = GetOutPath(CreateAssetBundle.AssetPath); //FileTools.ClearDirectory (outP); FileTools.CreateDirectory(outP); BuildPipeline.BuildAssetBundles(outP, BuildAssetBundleOptions.UncompressedAssetBundle | BuildAssetBundleOptions.ForceRebuildAssetBundle, EditorUserBuildSettings.activeBuildTarget); CreateAssetBundle.SetDependencies(resInfo, outP); CreateAssetBundle.SaveResInfoFile(FileTools.CombinePath(outP, name + CreateAssetBundle.ResInfoName), resInfo); CreateAssetBundle.ClearAssetName(rootName, resInfo); //CopyToSteaming(rootName, name); PublishEditor.MoveModuleAssetToRes(name); AssetDatabase.Refresh(); //EditorUtility.DisplayDialog("提示", "打包AssetBundle完成!", "确定"); }
public static void Load() { path = FileTools.CombinePath(TABLE_PATH, "goodsinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); GoodsInfo_ARRAY GoodsInfo_items = Serializer.Deserialize <GoodsInfo_ARRAY>(stream); for (int i = 0; i < GoodsInfo_items.items.Count; i++) { GoodsInfoDict.Add(GoodsInfo_items.items [i].id, GoodsInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "itemsinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); ItemsInfo_ARRAY ItemsInfo_items = Serializer.Deserialize <ItemsInfo_ARRAY>(stream); for (int i = 0; i < ItemsInfo_items.items.Count; i++) { ItemsInfoDict.Add(ItemsInfo_items.items [i].id, ItemsInfo_items.items [i]); } }
public static void SetDependencies(ResourceInfo itemInfo, string outPath) { //string info = File.ReadAllText (Path.Combine (AssetOutPath, ResInfoName)); //ResourceInfo itemInfo = JsonUtility.FromJson<ResourceInfo> (info); AssetBundle ab = AssetBundle.LoadFromFile(FileTools.CombinePath(outPath, AssetHeplerEditor.GetPlatformName())); AssetBundleManifest m = ab.LoadAsset <AssetBundleManifest> ("AssetBundleManifest"); //Debug.Log (m.GetAllDependencies("10001")[0]); for (int i = 0; i < itemInfo.ResList.Count; i++) { if (itemInfo.ResList [i].IsAsset) { itemInfo.ResList [i].Dependencies = m.GetAllDependencies(itemInfo.ResList [i].Name); } } ab.Unload(true); // string infoPath = Path.Combine (AssetOutPath, ResInfoName); // using (StreamWriter streamWriter = new StreamWriter(infoPath, false)) { // streamWriter.WriteLine(JsonUtility.ToJson(itemInfo)); // streamWriter.Flush(); // } // Debug.LogWarning (JsonUtility.ToJson(itemInfo)); }
static string GetOutPath(string path) { return(FileTools.CombinePath(path, AssetHeplerEditor.GetPlatformName())); }
public static void Load() { path = FileTools.CombinePath(TABLE_PATH, "actionaudioinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); ActionAudioInfo_ARRAY ActionAudioInfo_items = Serializer.Deserialize <ActionAudioInfo_ARRAY>(stream); for (int i = 0; i < ActionAudioInfo_items.items.Count; i++) { ActionAudioInfoDict.Add(ActionAudioInfo_items.items [i].id, ActionAudioInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "actorinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); ActorInfo_ARRAY ActorInfo_items = Serializer.Deserialize <ActorInfo_ARRAY>(stream); for (int i = 0; i < ActorInfo_items.items.Count; i++) { ActorInfoDict.Add(ActorInfo_items.items [i].id, ActorInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "audioenglishinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); AudioEnglishInfo_ARRAY AudioEnglishInfo_items = Serializer.Deserialize <AudioEnglishInfo_ARRAY>(stream); for (int i = 0; i < AudioEnglishInfo_items.items.Count; i++) { AudioEnglishInfoDict.Add(AudioEnglishInfo_items.items [i].id, AudioEnglishInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "audioinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); AudioInfo_ARRAY AudioInfo_items = Serializer.Deserialize <AudioInfo_ARRAY>(stream); for (int i = 0; i < AudioInfo_items.items.Count; i++) { AudioInfoDict.Add(AudioInfo_items.items [i].id, AudioInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "englishcoloursinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); EnglishColoursInfo_ARRAY EnglishColoursInfo_items = Serializer.Deserialize <EnglishColoursInfo_ARRAY>(stream); for (int i = 0; i < EnglishColoursInfo_items.items.Count; i++) { EnglishColoursInfoDict.Add(EnglishColoursInfo_items.items [i].id, EnglishColoursInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "englishletterinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); EnglishLetterInfo_ARRAY EnglishLetterInfo_items = Serializer.Deserialize <EnglishLetterInfo_ARRAY>(stream); for (int i = 0; i < EnglishLetterInfo_items.items.Count; i++) { EnglishLetterInfoDict.Add(EnglishLetterInfo_items.items [i].id, EnglishLetterInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "englishlevelinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); EnglishLevelInfo_ARRAY EnglishLevelInfo_items = Serializer.Deserialize <EnglishLevelInfo_ARRAY>(stream); for (int i = 0; i < EnglishLevelInfo_items.items.Count; i++) { EnglishLevelInfoDict.Add(EnglishLevelInfo_items.items [i].id, EnglishLevelInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "englishmainiteminfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); EnglishMainItemInfo_ARRAY EnglishMainItemInfo_items = Serializer.Deserialize <EnglishMainItemInfo_ARRAY>(stream); for (int i = 0; i < EnglishMainItemInfo_items.items.Count; i++) { EnglishMainItemInfoDict.Add(EnglishMainItemInfo_items.items [i].id, EnglishMainItemInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "expressphotosinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); ExpressPhotosInfo_ARRAY ExpressPhotosInfo_items = Serializer.Deserialize <ExpressPhotosInfo_ARRAY>(stream); for (int i = 0; i < ExpressPhotosInfo_items.items.Count; i++) { ExpressPhotosInfoDict.Add(ExpressPhotosInfo_items.items [i].id, ExpressPhotosInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "mainanimation"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); MainAnimation_ARRAY MainAnimation_items = Serializer.Deserialize <MainAnimation_ARRAY>(stream); for (int i = 0; i < MainAnimation_items.items.Count; i++) { MainAnimationDict.Add(MainAnimation_items.items [i].id, MainAnimation_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "mainiteminfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); MainItemInfo_ARRAY MainItemInfo_items = Serializer.Deserialize <MainItemInfo_ARRAY>(stream); for (int i = 0; i < MainItemInfo_items.items.Count; i++) { MainItemInfoDict.Add(MainItemInfo_items.items [i].id, MainItemInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "matrixlevel"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); MatrixLevel_ARRAY MatrixLevel_items = Serializer.Deserialize <MatrixLevel_ARRAY>(stream); for (int i = 0; i < MatrixLevel_items.items.Count; i++) { MatrixLevelDict.Add(MatrixLevel_items.items [i].id, MatrixLevel_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "matrixlevelinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); MatrixLevelInfo_ARRAY MatrixLevelInfo_items = Serializer.Deserialize <MatrixLevelInfo_ARRAY>(stream); for (int i = 0; i < MatrixLevelInfo_items.items.Count; i++) { MatrixLevelInfoDict.Add(MatrixLevelInfo_items.items [i].id, MatrixLevelInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "newbieinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); NewBieInfo_ARRAY NewBieInfo_items = Serializer.Deserialize <NewBieInfo_ARRAY>(stream); for (int i = 0; i < NewBieInfo_items.items.Count; i++) { NewBieInfoDict.Add(NewBieInfo_items.items [i].id, NewBieInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "newbiescript"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); NewBieScript_ARRAY NewBieScript_items = Serializer.Deserialize <NewBieScript_ARRAY>(stream); for (int i = 0; i < NewBieScript_items.items.Count; i++) { NewBieScriptDict.Add(NewBieScript_items.items [i].id, NewBieScript_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "sensitiveword"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); SensitiveWord_ARRAY SensitiveWord_items = Serializer.Deserialize <SensitiveWord_ARRAY>(stream); for (int i = 0; i < SensitiveWord_items.items.Count; i++) { SensitiveWordDict.Add(SensitiveWord_items.items [i].id, SensitiveWord_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "supermarketgoodsinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); SuperMarketGoodsInfo_ARRAY SuperMarketGoodsInfo_items = Serializer.Deserialize <SuperMarketGoodsInfo_ARRAY>(stream); for (int i = 0; i < SuperMarketGoodsInfo_items.items.Count; i++) { SuperMarketGoodsInfoDict.Add(SuperMarketGoodsInfo_items.items [i].id, SuperMarketGoodsInfo_items.items [i]); } path = FileTools.CombinePath(TABLE_PATH, "timelineinfo"); resource = ResourceManager.Instance.GetResource(path, typeof(TextAsset), enResourceType.TableProto); binaryObject = resource.m_content as BinaryObject; stream = new MemoryStream(binaryObject.m_data); TimelineInfo_ARRAY TimelineInfo_items = Serializer.Deserialize <TimelineInfo_ARRAY>(stream); for (int i = 0; i < TimelineInfo_items.items.Count; i++) { TimelineInfoDict.Add(TimelineInfo_items.items [i].id, TimelineInfo_items.items [i]); } }