Merge branch 'china/dev-c' of http://60.1.1.230/gaoxin/JL_Client into china/dev-c

dev_chengFeng
ZhangBiao 2021-06-18 17:01:12 +08:00
commit 33866686ba
10 changed files with 561 additions and 146 deletions

View File

@ -9,11 +9,18 @@ public class AutoPack : EditorWindow
{
static string[][] PackConfig = new string[][]
{
new string[]{ "C轮v2", "Logo_gm_nosdk", "TCX_TEST_C_V2"},
new string[]{ "灵动专服-测试", "Logo_gn_zf_test", "MHT_GN_ZF_TEST" },
new string[]{ "灵动专服-正式", "Logo_gn_zf_release", "MHT_GN_ZF_RELEASE" },
new string[]{ "喜扑", "Logo_cn_xipu", "MHT_CN_XIPU"},
new string[]{ "草花", "Logo_cn_caohua", "MHT_CN_MIDDLE_WARE" },
// 专服
new string[]{ "C轮v2", "Logo_gm_nosdk", "TCX_TEST_C_V2", "china/zf_test"},
new string[]{ "灵动专服-测试", "Logo_gn_zf_test", "MHT_GN_ZF_TEST" , "china/zf_test"},
new string[]{ "灵动专服-正式", "Logo_gn_zf_release", "MHT_GN_ZF_RELEASE" , "china/zf_test"},
new string[]{ "喜扑", "Logo_cn_xipu", "MHT_CN_XIPU", "china/zf_test"},
new string[]{ "草花", "Logo_cn_caohua", "MHT_CN_MIDDLE_WARE" , "china/zf_test"},
// 灵动商务
new string[]{ "灵动商务", "Logo_mht_sw", "MHT_GN_SW" , "china/mht_sw"},
//先遣
};
@ -49,6 +56,7 @@ public class AutoPack : EditorWindow
static int ExportType;
static bool[] Chooser;
static bool isObb = false;
static string benchName; // 当前所在分支
private void OnEnable()
@ -84,6 +92,9 @@ public class AutoPack : EditorWindow
[MenuItem("自动化打包/一键导出")]
private static void EzBuildPack()
{
benchName = GitUtil.GetCurBenchName();
UnityEngine.Debug.Log("当前分支:" + benchName);
//创建窗口
Rect wr = new Rect(0, 0, 500, 700);
var buildWin = GetWindowWithRect<AutoPack>(wr, true);
@ -119,29 +130,31 @@ public class AutoPack : EditorWindow
EditorGUILayout.LabelField("请选择要打的包:");
for(int i = 0; i < PackConfig.Length; i++)
{
EditorGUILayout.BeginVertical();
Chooser[i] = EditorGUILayout.ToggleLeft(PackConfig[i][0], Chooser[i]);
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("编辑Config", GUILayout.Height(20f)))
if (PackConfig[i][3].Equals(benchName))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/Config/" + ConfigFileName;
GameEditor.Util.ProcessUtil.OpenText(tpath);
EditorGUILayout.BeginVertical();
Chooser[i] = EditorGUILayout.ToggleLeft(PackConfig[i][0], Chooser[i]);
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("编辑Config", GUILayout.Height(20f)))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/Config/" + ConfigFileName;
GameEditor.Util.ProcessUtil.OpenText(tpath);
}
if (GUILayout.Button("编辑Version", GUILayout.Height(20f)))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/Config/" + VersionFileName;
GameEditor.Util.ProcessUtil.OpenText(tpath);
}
if (GUILayout.Button("编辑Gradle", GUILayout.Height(20f)))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/build.gradle";
GameEditor.Util.ProcessUtil.OpenText(tpath);
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
EditorGUILayout.Space();
EditorGUILayout.Space();
}
if (GUILayout.Button("编辑Version", GUILayout.Height(20f)))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/Config/" + VersionFileName;
GameEditor.Util.ProcessUtil.OpenText(tpath);
}
if (GUILayout.Button("编辑Gradle", GUILayout.Height(20f)))
{
string tpath = _MomPackPath + PackConfig[i][2] + "/build.gradle";
GameEditor.Util.ProcessUtil.OpenText(tpath);
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
EditorGUILayout.Space();
EditorGUILayout.Space();
}
ExportType = EditorGUILayout.Popup("请选择出包方式", ExportType, ExportTypeList);

View File

@ -0,0 +1,362 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!1 &2
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 16}
- component: {fileID: 42}
- component: {fileID: 44}
- component: {fileID: 43}
- component: {fileID: 5}
- component: {fileID: 3}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c7cbe2940276bfc4f946d442c07229d2, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!81 &5
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_Enabled: 1
--- !u!4 &16
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!104 &22
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &24
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 10
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!114 &42
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 50
--- !u!114 &43
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ForceModuleActive: 0
--- !u!114 &44
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!1 &1013149005
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1013149006}
- component: {fileID: 1013149007}
- component: {fileID: 1013149008}
m_Layer: 0
m_Name: GameStart
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1013149006
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1013149005}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.26726648, y: 0.43754014, z: -0.046788022}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1013149007
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1013149005}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ae34f89576e17114c97f3cb81dba9ff6, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1013149008
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1013149005}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fa01058878b41024abbd731e7118c543, type: 3}
m_Name:
m_EditorClassIdentifier:
settingInfo:
logLevel: 0
isDebug: 0
bundleMode: 1
luaBundleMode: 1
isUpdate: 1
isSDK: 1
isSDKLogin: 1
isGuide: 1
isOpenGM: 0
--- !u!4 &57277738265262265
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3471622135844523394}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1362306110787991495
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3471622135844523394}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d7df5c5e5307f460e917e72bf75ec567, type: 3}
m_Name:
m_EditorClassIdentifier:
enableLog: 1
networkType: 3
tokens:
- appid: 63bdff7d90ca4720b6b6626841f0aad8
serverUrl: https://thinkingdata.18183g.com
mode: 0
timeZone: 0
timeZoneId:
--- !u!1 &3471622135844523394
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 57277738265262265}
- component: {fileID: 1362306110787991495}
- component: {fileID: 3471622135844523395}
- component: {fileID: 3471622135844523396}
m_Layer: 0
m_Name: SDKConfig
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &3471622135844523395
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3471622135844523394}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 54b4453692b964811aa1c221fd236d88, type: 3}
m_Name:
m_EditorClassIdentifier:
appid: wjtsq7xrwb48t2uw
channel: "\u592A\u521D\u884C\u5546\u52A1"
--- !u!114 &3471622135844523396
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3471622135844523394}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d7bc9cc33d9f7284590ba57b9743fb33, type: 3}
m_Name:
m_EditorClassIdentifier:
appid: 970c8100f1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 410a59493b3fcf84dbdaa79111f5d63d
timeCreated: 1496386600
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,30 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 16995157, guid: 30caf126b3b782148918a9fc431c054a, type: 3}
m_Name: DOTweenSettings
m_EditorClassIdentifier:
useSafeMode: 1
timeScale: 1
useSmoothDeltaTime: 0
maxSmoothUnscaledTime: 0.15
showUnityEditorReport: 0
logBehaviour: 2
drawGizmos: 1
defaultRecyclable: 0
defaultAutoPlay: 3
defaultUpdateType: 0
defaultTimeScaleIndependent: 0
defaultEaseType: 6
defaultEaseOvershootOrAmplitude: 1.70158
defaultEasePeriod: 0
defaultAutoKill: 1
defaultLoopType: 0
storeSettingsLocation: 0

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7e47d41fa35c48748b784bd5344a9924
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,41 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: EmptyCtrllerForIL2CPP
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107420452900571200}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &1107420452900571200
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates: []
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 0}

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: c2cec057eeca1b34d84823ee7d5cfa36
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1 +0,0 @@
{"buglyId":"261348dcd3", "channel":"pc", "resUrl":"http://60.1.1.12/jieling_dl/dev/assetBundles/subChannal094-test/", "packageVersion":"0.3", "subChannel":"1", "version":"0.16.1", "serverUrl":"http://60.1.1.23:8080/"}

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 52da38ae9a344c548a25e90cc205dc91
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -108,6 +108,24 @@ namespace GameEditor.FrameTool
}
return size / 1048576;
}
public static void WriteLog(string path, string name, string[] contents)
{
UnityEngine.Debug.Log("创建log文件");
UnityEngine.Debug.Log(path);
UnityEngine.Debug.Log(name);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string filePath = Path.Combine(path, name) + ".log";
//if (!File.Exists(filePath))
//{
// File.Create(filePath).Close();
//}
File.WriteAllLines(filePath, contents);
}
}
class HotFixConfig
@ -183,13 +201,11 @@ namespace GameEditor.FrameTool
public string local_files_path = "";
public decimal local_cdn_size = 0; // git与cdn比较 热更文件的文件大小
public decimal project_cdn_size = 0; // 工程与cdn比较 热更文件的文件大小
public List<ResourceFile> local_cdn_list; // git与cdn比较 热更文件列表
public List<ResourceFile> project_cdn_list; // 工程与cdn比较 热更文件列表
public VersionTxt local_version;
public VersionTxt cdn_version;
public Hashtable cdn_setting;
public HotFixSetting(string _desc, string _dir_name, string _dir_cdn_setting)
{
@ -215,29 +231,130 @@ namespace GameEditor.FrameTool
// GIT位置
local_files_path = HotfixWindow._HotFixProjectPath + "/Root/" + dir_name + "/" + AppConst.PlatformPath + "/";
// 读取version文件
string json = File.ReadAllText(path_cdn_setting + AppConst.GameVersionFile);
local_version = JsonUtility.FromJson<VersionTxt>(json);
// 下载cdn上的files文件
HotFixTool.RegetExternalFile(local_version.resUrl + AppConst.PlatformPath, cdn_files_path, "files.unity3d");
// 读取version文件
HotFixTool.RegetExternalFile(local_version.resUrl + AppConst.PlatformPath, cdn_files_path, AppConst.GameVersionFile);
cdn_version = JsonUtility.FromJson<VersionTxt>(File.ReadAllText(cdn_files_path + AppConst.GameVersionFile));
LoadSetting();
LoadLocalVersion();
LoadCDN();
// 计算差异文件
local_cdn_list = HotFixTool.GetDiffList(HotFixTool.GetFilesList(local_files_path), HotFixTool.GetFilesList(cdn_files_path));
project_cdn_list = HotFixTool.GetDiffList(HotFixTool.GetFilesList(project_files_path), HotFixTool.GetFilesList(cdn_files_path));
// 计算大小
local_cdn_size = HotFixTool.GetDiffSize(local_cdn_list);
project_cdn_size = HotFixTool.GetDiffSize(project_cdn_list);
//
isCalSize = true;
}
public void LoadSetting()
{
string setting = File.ReadAllText(path_cdn_setting + "Setting.txt", System.Text.Encoding.UTF8);
cdn_setting = MiniJSON.jsonDecode(setting) as Hashtable;
}
public string GetSettingConfig(string key)
{
if (cdn_setting == null || !cdn_setting.ContainsKey(key))
{
return null;
}
return cdn_setting[key] as string;
}
public void LoadLocalVersion()
{
// 读取version文件
string json = File.ReadAllText(path_cdn_setting + AppConst.GameVersionFile);
local_version = JsonUtility.FromJson<VersionTxt>(json);
}
public void LoadCDN()
{
if(local_version == null)
{
UnityEngine.Debug.LogError("请先加载本地version文件");
return;
}
// 下载cdn上的files文件
HotFixTool.RegetExternalFile(local_version.resUrl + AppConst.PlatformPath, cdn_files_path, "files.unity3d");
// 下载version文件
HotFixTool.RegetExternalFile(local_version.resUrl + AppConst.PlatformPath, cdn_files_path, AppConst.GameVersionFile);
// 读取version
string json = File.ReadAllText(cdn_files_path + AppConst.GameVersionFile);
cdn_version = JsonUtility.FromJson<VersionTxt>(json);
}
public void DOUpload()
{
string logName;
string updateName;
string changeFileName;
string logPath = path_cdn_setting + "/__HotFixLog/";
string tagName;
List<string> log = new List<string>();
//if (local_cdn_list.Count <= 0)
//{
// UnityEngine.Debug.Log("未检测到文件改动");
// return;
//}
// 初始化数据
updateName = dir_name + "_" + dir_cdn_setting + "_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss");
changeFileName = updateName.Replace("/", "$");
logName = changeFileName + "_UpLoad";
tagName = "hotfix/" + dir_name + "/" + dir_cdn_setting + "/" + local_version.version;
EditorUtility.DisplayProgressBar("正在获取数据:", updateName, 0f);
log.Add("热更文件版本:" + updateName);
log.Add("热更版本号:" + local_version.version);
log.Add("热更大小:" + local_cdn_size);
// copy unity3d
log.Add("热更文件:");
List<string> changeFile = new List<string>();
foreach (ResourceFile rf in local_cdn_list)
{
changeFile.Add(rf.fileName);
log.Add(rf.fileName);
}
changeFile.Add(UpdateConfigs.FILES);
log.Add(UpdateConfigs.FILES);
// write ChangeList
EditorUtility.DisplayProgressBar("正在生成文件变化列表", changeFileName, 1f);
HotFixTool.WriteLog(logPath, changeFileName, changeFile.ToArray());
// upload to cdn
EditorUtility.DisplayProgressBar("正在上传热更文件", changeFileName, 1f);
string cdnType = GetSettingConfig("cdn_type");
if (cdnType == null)
{
UnityEngine.Debug.LogError("CDN配置错误");
EditorUtility.ClearProgressBar();
return;
}
log.Add("CDN TYPE: " + cdnType);
string toolsDir = HotfixWindow._HotFixProjectPath + "/Tools/" + cdnType;
log.Add("TOOLS DIR: " + toolsDir);
string command = string.Format("python UpLoad.py {0} {1} {2}>>{3}", HotfixWindow._HotFixProjectPath + "/Root/" + dir_name, dir_cdn_setting, changeFileName, logPath + logName + ".log");
log.Add("UPLOAD COMMAND: " + command);
ProcessUtil.ProcessCommand(toolsDir, command);
string flushCommand = string.Format("python Flush.py {0}>>{1}", cdn_version.resUrl, logPath + logName + ".log");
log.Add("Flush COMMAND: " + flushCommand);
ProcessUtil.ProcessCommand(toolsDir, flushCommand);
// write log
EditorUtility.DisplayProgressBar("正在生成Log文件", logName, 1f);
HotFixTool.WriteLog(logPath, logName, log.ToArray());
// git commit
string commitName = desc + "更新:" + updateName;
EditorUtility.DisplayProgressBar("正在提交到GIT", commitName, 1f);
ProcessUtil.ProcessCommand(path_cdn_setting, "git add .");
ProcessUtil.ProcessCommand(path_cdn_setting, "git commit -m " + commitName);
ProcessUtil.ProcessCommand(path_cdn_setting, "git push");
// git tag
string dir = Application.dataPath.Replace("/Assets", "");
ProcessUtil.ProcessCommand(dir, string.Format("git tag -a {0} -m {1}", tagName, commitName));
ProcessUtil.ProcessCommand(dir, "git push origin --tags");
UnityEngine.Debug.Log("更新完成,游戏工程标签为:" + tagName + ",热更工程提交:" + commitName);
EditorUtility.ClearProgressBar();
}
}
//看热更大小
@ -374,7 +491,9 @@ namespace GameEditor.FrameTool
}
if (GUILayout.Button("更新到GIT", GUILayout.Height(20f)))
{
HotfixConfimWindow.Create("是否要将工程热更文件同步到GIT " + _CurConfig.desc, _CurConfig.project_local_list, () =>
string title = "是否要将工程热更文件同步到GIT " + _CurConfig.desc;
string content = string.Format("更新大小:{0}", HotFixTool.GetDiffSize(_CurConfig.project_local_list).ToString("0.00") + "M");
HotfixConfimWindow.Create(title, content, _CurConfig.project_local_list, () =>
{
UpdateUnity3dToGit(_CurConfig);
});
@ -398,7 +517,6 @@ namespace GameEditor.FrameTool
EditorGUILayout.LabelField("CDN当前版本号" + (hfs.cdn_version == null ? "" : hfs.cdn_version.version));
EditorGUILayout.LabelField("GIT到CDN" + hfs.local_cdn_size.ToString("0.00") + "M");
//EditorGUILayout.LabelField("工程到CDN" + hfs.project_cdn_size.ToString("0.00") + "M");
EditorGUILayout.EndVertical();
if (GUILayout.Button("编辑Setting", GUILayout.Height(30f), GUILayout.Width(100f)))
@ -422,9 +540,13 @@ namespace GameEditor.FrameTool
}
if (GUILayout.Button("更新", GUILayout.Height(30f), GUILayout.Width(100f)))
{
HotfixConfimWindow.Create("是否要热更: " + hfs.desc, hfs.local_cdn_list, () =>
//重新加载本地version
hfs.LoadLocalVersion();
string title = "是否要热更: " + hfs.desc;
string content = string.Format("更新大小:{0}CDN当前版本{1},更新后版本{2}", HotFixTool.GetDiffSize(hfs.local_cdn_list).ToString("0.00") + "M", hfs.cdn_version.version, hfs.local_version.version);
HotfixConfimWindow.Create(title, content, hfs.local_cdn_list, () =>
{
UpdateUnity3dToCDN(hfs);
hfs.DOUpload();
});
}
EditorGUILayout.EndHorizontal();
@ -596,20 +718,22 @@ namespace GameEditor.FrameTool
//看热更大小
public class HotfixConfimWindow : EditorWindow
{
string title;
string content;
List<ResourceFile> diffList;
Action a;
Vector2 _scp = Vector2.zero;
public static void Create(string content, List<ResourceFile> diffList, Action a)
public static void Create(string title, string content, List<ResourceFile> diffList, Action a)
{
HotfixConfimWindow window = (HotfixConfimWindow)EditorWindow.GetWindow(typeof(HotfixConfimWindow), true, "提示", true);
window.SetContent(content, diffList, a);
window.SetContent(title, content, diffList, a);
window.ShowAuxWindow();
}
public void SetContent(string _content, List<ResourceFile> _diffList, Action _a)
public void SetContent(string _title, string _content, List<ResourceFile> _diffList, Action _a)
{
title = _title;
content = _content;
diffList = _diffList;
a = _a;
@ -618,14 +742,17 @@ namespace GameEditor.FrameTool
private void OnGUI()
{
EditorGUILayout.BeginVertical();
EditorGUILayout.LabelField(content);
EditorGUILayout.LabelField(title);
_scp = EditorGUILayout.BeginScrollView(_scp);
foreach(ResourceFile rf in diffList)
{
EditorGUILayout.LabelField(rf.fileName);
}
EditorGUILayout.LabelField("files.unity3d");
EditorGUILayout.LabelField(AppConst.GameConfigFile);
EditorGUILayout.LabelField(AppConst.GameVersionFile);
EditorGUILayout.EndScrollView();
EditorGUILayout.LabelField("更新大小:" + HotFixTool.GetDiffSize(diffList).ToString("0.00") + "M");
EditorGUILayout.LabelField(content);//"更新大小:" + HotFixTool.GetDiffSize(diffList).ToString("0.00") + "M");
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("取消")){
Close();