/// <summary> /// 资源导入监听 /// </summary> /// <param name="importedAssets"></param> /// <param name="deletedAssets"></param> /// <param name="movedAssets"></param> /// <param name="movedFromAssetPaths"></param> static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { _CacheData = new BDAssetImpoterCache(); //1.搜集热更脚本变更 foreach (string str in importedAssets) { if (str.Contains("@hotfix") && str.EndsWith(".cs")) { CacheData.HotfixList.Add(str); } } foreach (string str in movedAssets) { if (str.Contains("@hotfix") && str.EndsWith(".cs")) { CacheData.HotfixList.Add(str); } } FileHelper.WriteAllText(ImporterCahcePath, JsonMapper.ToJson(CacheData)); //编译dll if (CacheData.HotfixList.Count > 0) { HotfixCodeWorkFollow.OnCodeChanged(); } //2.判断是否导入Odin foreach (string str in importedAssets) { if (str.Contains("Sirenix.OdinInspector.Attributes.dll")) { //导入odin要删除fake Odinclass var path = AssetDatabase.GUIDToAssetPath("b072c123447549fa81bb03f3ddebec80"); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } break; } } }
/// <summary> /// 资源导入监听 /// </summary> /// <param name="importedAssets"></param> /// <param name="deletedAssets"></param> /// <param name="movedAssets"></param> /// <param name="movedFromAssetPaths"></param> static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { CacheData = new BDAssetImpoterCache(); //1.搜集热更脚本变更 foreach (string str in importedAssets) { if (str.Contains("@hotfix") && str.EndsWith(".cs")) { CacheData.HotfixList.Add(str); } } foreach (string str in movedAssets) { if (str.Contains("@hotfix") && str.EndsWith(".cs")) { CacheData.HotfixList.Add(str); } } FileHelper.WriteAllText(ImporterCahcePath, JsonMapper.ToJson(CacheData)); //2.判断是否导入Odin foreach (string str in importedAssets) { if (str.Contains("Sirenix.OdinInspector.Attributes.dll")) { var path = AssetDatabase.GUIDToAssetPath("b072c123447549fa81bb03f3ddebec80"); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } break; } } //编译dll BDFrameEditorLife.BuildHotfixDll(); }
/// <summary> /// 资源导入监听 /// </summary> /// <param name="importedAssets"></param> /// <param name="deletedAssets"></param> /// <param name="movedAssets"></param> /// <param name="movedFromAssetPaths"></param> static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { _CacheData = new BDAssetImpoterCache(); //1.搜集热更脚本变更 foreach (string assetPath in importedAssets) { if (ScriptBuildTools.IsHotfixScript(assetPath)) { CacheData.HotfixList.Add(assetPath); } } foreach (string assetPath in movedAssets) { if (ScriptBuildTools.IsHotfixScript(assetPath)) { CacheData.HotfixList.Add(assetPath); } } FileHelper.WriteAllText(ImporterCahcePath, JsonMapper.ToJson(CacheData)); //编译dll if (CacheData.HotfixList.Count > 0) { HotfixCodeWorkFlow.OnCodeChanged(); } //2.判断是否导入Odin,是则加入命名空间 foreach (string impoter in importedAssets) { if (impoter.Contains("Sirenix.OdinInspector.Attributes.dll")) { var btg = new BuildTargetGroup[] { BuildTargetGroup.Android, BuildTargetGroup.iOS, BuildTargetGroup.Standalone }; foreach (var bt in btg) { var symbols = PlayerSettings.GetScriptingDefineSymbolsForGroup(bt); if (!symbols.Contains("ODIN_INSPECTOR")) { string str = ""; if (!string.IsNullOrEmpty(symbols)) { if (!str.EndsWith(";")) { str = symbols + ";ODIN_INSPECTOR"; } else { str = symbols + "ODIN_INSPECTOR"; } } else { str = "ODIN_INSPECTOR"; } PlayerSettings.SetScriptingDefineSymbolsForGroup(bt, str); } } break; } } }