Skip to content

Commit 5dde6fe

Browse files
committed
优化
1 parent 7fd5438 commit 5dde6fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+2252
-446
lines changed

Assets/Script/Core/Application/ApplicationManager.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,6 @@ public void Awake()
7373
AppLaunch();
7474
}
7575

76-
private void OnEnable()
77-
{
78-
instance = this;
79-
Debug.Log(this.name + " : OnEnable");
80-
}
81-
8276
/// <summary>
8377
/// 程序启动
8478
/// </summary>

Assets/Script/Core/Application/ApplicationStatusManager.cs

Lines changed: 80 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,36 +27,82 @@ private static void AppOnGUI()
2727
if (s_currentAppStatus != null)
2828
s_currentAppStatus.OnGUI();
2929
}
30-
30+
private static float s_fadeInTime = 0.5f;
31+
private static float s_afterInDelayTime = 0.1f;
32+
private static float s_fadeOutTime = 0.4f;
33+
public static void SetFadeTime(float _fadeInTime, float afterInDelayTime, float _fadeOutTime)
34+
{
35+
s_fadeInTime = _fadeInTime;
36+
s_afterInDelayTime = afterInDelayTime;
37+
s_fadeOutTime = _fadeOutTime;
38+
}
3139
/// <summary>
3240
/// 切换游戏状态
3341
/// </summary>
3442
/// <param name="l_appStatus"></param>
35-
public static void EnterStatus<T>() where T:IApplicationStatus
43+
public static void EnterStatus<T>(bool isFade = true) where T:IApplicationStatus
3644
{
37-
EnterStatus(typeof(T).Name);
45+
EnterStatus(typeof(T).Name,isFade);
3846
}
3947

40-
public static void EnterStatus(string statusName)
48+
public static void EnterStatus(string statusName,bool isFade=true)
4149
{
4250
if (s_currentAppStatusName == statusName)
4351
return;
52+
if (!isFade)
53+
{
54+
if (s_currentAppStatus != null)
55+
{
56+
s_currentAppStatus.CloseAllUI();
57+
s_currentAppStatus.OnExitStatus();
58+
}
4459

45-
s_currentAppStatusName = statusName;
46-
ApplicationManager.Instance.currentStatus = statusName;
60+
s_currentAppStatusName = statusName;
61+
ApplicationManager.Instance.currentStatus = statusName;
4762

48-
if (s_currentAppStatus != null)
49-
{
50-
s_currentAppStatus.CloseAllUI();
51-
s_currentAppStatus.OnExitStatus();
63+
s_currentAppStatus = GetStatus(statusName);
64+
65+
s_currentAppStatus.OnEnterStatus();
66+
67+
if (OnStatusChangeCallBack != null)
68+
OnStatusChangeCallBack(s_currentAppStatus);
5269
}
70+
else
71+
{
5372

54-
s_currentAppStatus = GetStatus(statusName);
73+
if (s_currentAppStatus != null)
74+
{
75+
UIManager.SetEventSystemEnable(false);
76+
CameraFade.Instance.FadeInToOut(s_fadeInTime, s_afterInDelayTime, s_fadeOutTime, () =>
77+
{
78+
UIManager.SetEventSystemEnable(true);
79+
s_currentAppStatus.CloseAllUI(false);
80+
s_currentAppStatus.OnExitStatus();
81+
s_currentAppStatusName = statusName;
82+
ApplicationManager.Instance.currentStatus = statusName;
83+
84+
s_currentAppStatus = GetStatus(statusName);
85+
86+
s_currentAppStatus.OnEnterStatus();
5587

56-
s_currentAppStatus.OnEnterStatus();
88+
if (OnStatusChangeCallBack != null)
89+
OnStatusChangeCallBack(s_currentAppStatus);
90+
});
91+
}
92+
else
93+
{
94+
s_currentAppStatusName = statusName;
95+
ApplicationManager.Instance.currentStatus = statusName;
5796

58-
if (OnStatusChangeCallBack != null)
59-
OnStatusChangeCallBack(s_currentAppStatus);
97+
s_currentAppStatus = GetStatus(statusName);
98+
99+
s_currentAppStatus.OnEnterStatus();
100+
101+
if (OnStatusChangeCallBack != null)
102+
OnStatusChangeCallBack(s_currentAppStatus);
103+
}
104+
105+
}
60106
//ApplicationManager.Instance.StartCoroutine(s_currentAppStatus.InChangeScene(() =>
61107
//{
62108
// s_currentAppStatus.OnEnterStatus();
@@ -76,12 +122,29 @@ public static IApplicationStatus GetStatus(string statusName)
76122
}
77123
else
78124
{
79-
IApplicationStatus statusTmp = (IApplicationStatus)Activator.CreateInstance(Type.GetType(statusName));
125+
return CreateStatus(statusName);
126+
}
127+
}
128+
129+
public static T CreateStatus<T>() where T : IApplicationStatus
130+
{
131+
return (T)CreateStatus(typeof(T).Name);
132+
}
133+
134+
public static IApplicationStatus CreateStatus(string statusName)
135+
{
136+
IApplicationStatus statusTmp=null;
137+
if (!s_status.ContainsKey(statusName))
138+
{
139+
statusTmp = (IApplicationStatus)Activator.CreateInstance(Type.GetType(statusName));
80140
statusTmp.OnCreate();
81141
s_status.Add(statusName, statusTmp);
82-
83-
return statusTmp;
84142
}
143+
else
144+
{
145+
statusTmp= s_status[statusName];
146+
}
147+
return statusTmp;
85148
}
86149

87150
/// <summary>

Assets/Script/Core/Application/IApplicationStatus.cs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ public T OpenUI<T>() where T: UIWindowBase
1515

1616
return (T)ui;
1717
}
18+
public UIWindowBase OpenUI(string name)
19+
{
20+
UIWindowBase ui = UIManager.OpenUIWindow(name);
21+
22+
m_uiList.Add(ui);
23+
24+
return ui;
25+
}
1826

1927
public void OpenUIAsync<T>() where T:UIWindowBase
2028
{
@@ -31,11 +39,30 @@ public void CloseUI<T>() where T:UIWindowBase
3139
UIManager.CloseUIWindow(ui);
3240
}
3341

34-
public void CloseAllUI()
42+
public void CloseUI(UIWindowBase ui)
43+
{
44+
m_uiList.Remove(ui);
45+
UIManager.CloseUIWindow(ui);
46+
}
47+
48+
public bool IsUIOpen<T>() where T : UIWindowBase
49+
{
50+
for (int i = 0; i < m_uiList.Count; i++)
51+
{
52+
UIWindowBase tempWin = m_uiList[i];
53+
if (tempWin.GetType() == typeof(T)
54+
&&(tempWin.windowStatus == UIWindowBase.WindowStatus.Open
55+
|| tempWin.windowStatus == UIWindowBase.WindowStatus.OpenAnim))
56+
return true;
57+
}
58+
return false;
59+
}
60+
61+
public void CloseAllUI(bool isPlayAnim = true)
3562
{
3663
for (int i = 0; i < m_uiList.Count; i++)
3764
{
38-
UIManager.CloseUIWindow(m_uiList[i]);
65+
UIManager.CloseUIWindow(m_uiList[i],isPlayAnim);
3966
}
4067
m_uiList.Clear();
4168
}

Assets/Script/Core/Data/DataTable.cs

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,13 @@ public static string Serialize(DataTable data)
248248

249249
//type
250250
List<string> type = new List<string>(data.m_tableTypes.Keys);
251+
Debug.Log("type count " + type.Count);
252+
build.Append(c_fieldTypeTableTitle);
253+
251254
if (type.Count > 0)
252255
{
253-
build.Append(c_fieldTypeTableTitle);
254256
build.Append(c_split);
257+
255258
for (int i = 1; i < data.TableKeys.Count; i++)
256259
{
257260
string key = data.TableKeys[i];
@@ -290,13 +293,19 @@ public static string Serialize(DataTable data)
290293
}
291294
}
292295
}
296+
else
297+
{
298+
build.Append(c_newline);
299+
}
293300

294301
//note
295302
List<string> noteValue = new List<string>(data.m_noteValue.Keys);
303+
build.Append(c_noteTableTitle);
304+
296305
if (noteValue.Count > 0)
297306
{
298-
build.Append(c_noteTableTitle);
299307
build.Append(c_split);
308+
300309
for (int i = 1; i < data.TableKeys.Count; i++)
301310
{
302311
string key = data.TableKeys[i];
@@ -323,14 +332,20 @@ public static string Serialize(DataTable data)
323332
}
324333
}
325334
}
335+
else
336+
{
337+
build.Append(c_newline);
338+
}
326339

327340
//defauleValue
328341
List<string> defaultValue = new List<string>(data.m_defaultValue.Keys);
329342

343+
build.Append(c_defaultValueTableTitle);
344+
330345
if (defaultValue.Count >0)
331346
{
332-
build.Append(c_defaultValueTableTitle);
333-
build.Append(c_split);
347+
build.Append(c_split);
348+
334349
for (int i = 1; i < data.TableKeys.Count; i++)
335350
{
336351
string key = data.TableKeys[i];
@@ -357,6 +372,10 @@ public static string Serialize(DataTable data)
357372
}
358373
}
359374
}
375+
else
376+
{
377+
build.Append(c_newline);
378+
}
360379

361380
//value
362381
foreach (string k in data.Keys)

0 commit comments

Comments
 (0)