com.typhoon.unitysdk 1.0.16 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Editor/ApplyTool.cs +60 -4
- package/Editor/ExportModule.cs +82 -9
- package/Editor/PublishWindow.cs +25 -11
- package/Editor/UniEditor.cs +43 -3
- package/Sources~/Package/ChinaAndroid.unitypackage +0 -0
- package/Sources~/Package/ChinaAndroid.unitypackage.manifest +13 -0
- package/Sources~/Package//345/270/270/347/224/250/346/211/223/345/214/205/351/205/215/347/275/256.unitypackage +0 -0
- package/package.json +1 -1
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/AndroidManifest.xml +0 -18
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/AndroidManifest.xml.meta +0 -7
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/sdk_plug-release.aar +0 -0
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/sdk_plug-release.aar.meta +0 -32
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/unity_app-release.aar +0 -0
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/unity_app-release.aar.meta +0 -32
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/unity_launcher-release.aar +0 -0
- package/Sources~/ChinaAndroid/Assets/Plugins/Android/libs/unity_launcher-release.aar.meta +0 -32
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/ChinaAndroidSdk.cs +0 -154
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/ChinaAndroidSdk.cs.meta +0 -11
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor/PublishChinaAndroidAAR.cs +0 -56
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor/PublishChinaAndroidAAR.cs.meta +0 -11
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor.meta +0 -8
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources/TYPHOON_SDK_CHINA_ANDROID.prefab +0 -45
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources/TYPHOON_SDK_CHINA_ANDROID.prefab.meta +0 -7
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources.meta +0 -8
- package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid.meta +0 -8
package/Editor/ApplyTool.cs
CHANGED
|
@@ -3,6 +3,7 @@ using System.Collections;
|
|
|
3
3
|
using System.Collections.Generic;
|
|
4
4
|
using System.IO;
|
|
5
5
|
using UnityEditor;
|
|
6
|
+
using UnityEditor.VersionControl;
|
|
6
7
|
using UnityEngine;
|
|
7
8
|
|
|
8
9
|
namespace TyphoonUnitySDK
|
|
@@ -35,6 +36,8 @@ namespace TyphoonUnitySDK
|
|
|
35
36
|
var done = SwitchPlatformTo(setting.BuildTarget);
|
|
36
37
|
if (done)
|
|
37
38
|
{
|
|
39
|
+
//写入apply 历史
|
|
40
|
+
UniEditor.WriteApplyHistory(setting);
|
|
38
41
|
//修改参数
|
|
39
42
|
switch (setting.BuildTarget)
|
|
40
43
|
{
|
|
@@ -300,14 +303,67 @@ namespace TyphoonUnitySDK
|
|
|
300
303
|
}
|
|
301
304
|
|
|
302
305
|
|
|
306
|
+
public static void ImportUnityPackage(string package)
|
|
307
|
+
{
|
|
308
|
+
AssetDatabase.ImportPackage(package, false);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
/*读取清单*/
|
|
313
|
+
public static HashSet<string> ReadManifest(string path)
|
|
314
|
+
{
|
|
315
|
+
if (!File.Exists(path))
|
|
316
|
+
{
|
|
317
|
+
return new HashSet<string>();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
var contents = File.ReadAllLines(path);
|
|
321
|
+
var result = new HashSet<string>();
|
|
322
|
+
foreach (var e in contents)
|
|
323
|
+
{
|
|
324
|
+
if (!string.IsNullOrEmpty(e))
|
|
325
|
+
{
|
|
326
|
+
result.Add(e);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
return result;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
/// <summary>
|
|
335
|
+
/// 清理文件夹,保留文件
|
|
336
|
+
/// </summary>
|
|
337
|
+
public static void ClearFilesInDirectory(string folder, HashSet<string> keep)
|
|
338
|
+
{
|
|
339
|
+
if (Directory.Exists(folder))
|
|
340
|
+
{
|
|
341
|
+
var files = Directory.GetFiles(folder, "*", SearchOption.AllDirectories);
|
|
342
|
+
foreach (var element in files)
|
|
343
|
+
{
|
|
344
|
+
var path = UniEditor.FullPathToAssetPath(element);
|
|
345
|
+
if (keep.Contains(path))
|
|
346
|
+
{
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
File.Delete(path);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
303
355
|
public class ApplyChinaAndroid : IApply
|
|
304
356
|
{
|
|
305
357
|
public void Apply(PublishSetting setting)
|
|
306
358
|
{
|
|
307
|
-
|
|
308
|
-
UniEditor.
|
|
309
|
-
UniEditor.
|
|
310
|
-
|
|
359
|
+
Debug.Log($"导入... {UniEditor.PackagePath_ChinaAndroid}");
|
|
360
|
+
ImportUnityPackage(UniEditor.PackagePath_ChinaAndroid);
|
|
361
|
+
var manifest_path = $"{UniEditor.PackagePath_ChinaAndroid}.manifest";
|
|
362
|
+
Debug.Log($"读取资源清单...{manifest_path}");
|
|
363
|
+
var manifest = ReadManifest(manifest_path);
|
|
364
|
+
Debug.Log($"清理多余文件...");
|
|
365
|
+
ClearFilesInDirectory("Assets/Plugins/Android", manifest);
|
|
366
|
+
ClearFilesInDirectory("Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid", manifest);
|
|
311
367
|
AssetDatabase.Refresh();
|
|
312
368
|
}
|
|
313
369
|
}
|
package/Editor/ExportModule.cs
CHANGED
|
@@ -3,6 +3,7 @@ using System.Collections;
|
|
|
3
3
|
using System.Collections.Generic;
|
|
4
4
|
using System.IO;
|
|
5
5
|
using System.Text;
|
|
6
|
+
using Sirenix.Utilities.Editor;
|
|
6
7
|
using UnityEditor;
|
|
7
8
|
using UnityEngine;
|
|
8
9
|
|
|
@@ -16,7 +17,7 @@ namespace TyphoonUnitySDK
|
|
|
16
17
|
/// <summary>
|
|
17
18
|
/// 导出ChinaAndroid模块
|
|
18
19
|
/// </summary>
|
|
19
|
-
[MenuItem("TyphoonSDK/开发者/导出-ChinaAndroid")]
|
|
20
|
+
[MenuItem("TyphoonSDK/开发者/导出-ChinaAndroid.unitypackage")]
|
|
20
21
|
public static void ExportChinaAndroid()
|
|
21
22
|
{
|
|
22
23
|
var manifest = new List<string>()
|
|
@@ -38,7 +39,7 @@ namespace TyphoonUnitySDK
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
ExportUnityPackage(manifest, UniEditor.PackagePath_ChinaAndroid, out var detail);
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
|
|
@@ -148,7 +149,7 @@ namespace TyphoonUnitySDK
|
|
|
148
149
|
}
|
|
149
150
|
|
|
150
151
|
var toFolder =
|
|
151
|
-
$"
|
|
152
|
+
$".typhoonbackup/{Path.GetFileNameWithoutExtension(folderRoot)}-{DateTime.Now.ToString("yyyyMMddhhmmss")}";
|
|
152
153
|
Debug.Log($"备份{folderRoot}-->{toFolder}");
|
|
153
154
|
UniEditor.CopyFolder(folderRoot, toFolder);
|
|
154
155
|
}
|
|
@@ -173,15 +174,14 @@ namespace TyphoonUnitySDK
|
|
|
173
174
|
UniEditor.CopyFolder(source, dest);
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
|
|
178
|
+
|
|
179
179
|
[MenuItem("TyphoonSDK/开发者/导出-常用打包配置.unitypackage")]
|
|
180
180
|
public static void ExportUnityPackage()
|
|
181
181
|
{
|
|
182
182
|
var path = UniEditor.PackagePath_PublishSetting;
|
|
183
183
|
var backup =
|
|
184
|
-
$"
|
|
184
|
+
$".typhoonbackup/{Path.GetFileNameWithoutExtension(path)}-{DateTime.Now.ToString("yyyyMMddHHmmss")}{Path.GetExtension(path)}";
|
|
185
185
|
var dir = Path.GetDirectoryName(backup);
|
|
186
186
|
UniEditor.CreateDirIfNotExist(dir);
|
|
187
187
|
|
|
@@ -205,7 +205,8 @@ namespace TyphoonUnitySDK
|
|
|
205
205
|
Debug.Log($"导出项:{guids.Length}");
|
|
206
206
|
AssetDatabase.SaveAssets();
|
|
207
207
|
//Assets/Typhoon_Gen/TyphoonSDK/Editor/常用打包配置
|
|
208
|
-
AssetDatabase.ExportPackage("Assets/Typhoon_Gen/TyphoonSDK/Editor/常用打包配置", path,
|
|
208
|
+
AssetDatabase.ExportPackage("Assets/Typhoon_Gen/TyphoonSDK/Editor/常用打包配置", path,
|
|
209
|
+
ExportPackageOptions.Recurse);
|
|
209
210
|
AssetDatabase.Refresh();
|
|
210
211
|
if (File.Exists(path))
|
|
211
212
|
{
|
|
@@ -213,6 +214,78 @@ namespace TyphoonUnitySDK
|
|
|
213
214
|
EditorUtility.RevealInFinder(path);
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
|
-
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
/// <summary>
|
|
220
|
+
/// 导出UnityPackage
|
|
221
|
+
/// </summary>
|
|
222
|
+
/// <param name="source">资源文件或文件夹路径</param>
|
|
223
|
+
/// <param name="savePath">保存的unitypackage路径</param>
|
|
224
|
+
/// <param name="manifest">导出的详细资源清单</param>
|
|
225
|
+
public static void ExportUnityPackage(List<string> source, string savePath, out HashSet<string> manifest)
|
|
226
|
+
{
|
|
227
|
+
manifest = new HashSet<string>();
|
|
228
|
+
//遍历获取所有的文件和文件夹
|
|
229
|
+
foreach (var path in source)
|
|
230
|
+
{
|
|
231
|
+
manifest.Add(ToUnityPath(path));
|
|
232
|
+
if (Directory.Exists(path))
|
|
233
|
+
{
|
|
234
|
+
var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
|
|
235
|
+
foreach (var e in files)
|
|
236
|
+
{
|
|
237
|
+
manifest.Add(ToUnityPath(e));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
var backup =
|
|
244
|
+
$".typhoonbackup/{Path.GetFileNameWithoutExtension(savePath)}-{DateTime.Now.ToString("yyyyMMddHHmmss")}{Path.GetExtension(savePath)}";
|
|
245
|
+
var manifestPath = $"{savePath}.manifest";
|
|
246
|
+
var manifest_backup = $"{backup}.manifest";
|
|
247
|
+
var dir = Path.GetDirectoryName(backup);
|
|
248
|
+
UniEditor.CreateDirIfNotExist(dir);
|
|
249
|
+
//备份unitypackage
|
|
250
|
+
if (File.Exists(savePath))
|
|
251
|
+
{
|
|
252
|
+
Debug.Log($"备份:{savePath}-->{backup}");
|
|
253
|
+
File.Copy(savePath, backup, true);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
//备份清单
|
|
257
|
+
if (File.Exists(manifestPath))
|
|
258
|
+
{
|
|
259
|
+
Debug.Log($"备份:{manifestPath}-->{manifest_backup}");
|
|
260
|
+
File.Copy(manifestPath, manifest_backup, true);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
AssetDatabase.SaveAssets();
|
|
264
|
+
dir = Path.GetDirectoryName(savePath);
|
|
265
|
+
UniEditor.CreateDirIfNotExist(dir);
|
|
266
|
+
AssetDatabase.SaveAssets();
|
|
267
|
+
Debug.Log($"导出:{savePath}");
|
|
268
|
+
AssetDatabase.ExportPackage(source.ToArray(), savePath, ExportPackageOptions.Recurse);
|
|
269
|
+
//导出清单
|
|
270
|
+
Debug.Log($"导出清单:{manifestPath}");
|
|
271
|
+
var sb = new StringBuilder();
|
|
272
|
+
foreach (var element in manifest)
|
|
273
|
+
{
|
|
274
|
+
sb.AppendLine(element);
|
|
275
|
+
}
|
|
276
|
+
File.WriteAllText(manifestPath, sb.ToString());
|
|
277
|
+
AssetDatabase.Refresh();
|
|
278
|
+
if (File.Exists(savePath))
|
|
279
|
+
{
|
|
280
|
+
Debug.Log("导出成功");
|
|
281
|
+
EditorUtility.RevealInFinder(savePath);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
public static string ToUnityPath(string path)
|
|
287
|
+
{
|
|
288
|
+
return UniEditor.FullPathToAssetPath(path);
|
|
289
|
+
}
|
|
217
290
|
}
|
|
218
291
|
}
|
package/Editor/PublishWindow.cs
CHANGED
|
@@ -74,11 +74,21 @@ namespace TyphoonUnitySDK
|
|
|
74
74
|
private void OnEnable()
|
|
75
75
|
{
|
|
76
76
|
ReloadSettings();
|
|
77
|
+
if (UniEditor.TryGetApplyHistory(out var match))
|
|
78
|
+
{
|
|
79
|
+
foreach (var setting in PublishSettings)
|
|
80
|
+
{
|
|
81
|
+
if (setting.name == match)
|
|
82
|
+
{
|
|
83
|
+
_select = setting;
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
77
88
|
}
|
|
78
89
|
|
|
79
|
-
protected
|
|
90
|
+
protected void OnGUI()
|
|
80
91
|
{
|
|
81
|
-
|
|
82
92
|
var temEnable = GUI.enabled;
|
|
83
93
|
if (EditorApplication.isPlaying)
|
|
84
94
|
{
|
|
@@ -122,24 +132,26 @@ namespace TyphoonUnitySDK
|
|
|
122
132
|
rectToolbar.height = 22;
|
|
123
133
|
GUILayout.BeginArea(rectToolbar);
|
|
124
134
|
GUILayout.BeginHorizontal();
|
|
125
|
-
GUILayout.Label("发布配置", Styles.rbold_label,GUILayout.Width(110));
|
|
135
|
+
GUILayout.Label("发布配置", Styles.rbold_label, GUILayout.Width(110));
|
|
126
136
|
GUILayout.Space(1);
|
|
127
137
|
if (GUILayout.Button(new GUIContent(EditorIcons.icon_import, "导入常用配置"), Styles.rbutton,
|
|
128
|
-
GUILayout.Width(40),GUILayout.Height(20)))
|
|
138
|
+
GUILayout.Width(40), GUILayout.Height(20)))
|
|
129
139
|
{
|
|
130
140
|
UniEditor.ImportPackage(UniEditor.PackagePath_PublishSetting);
|
|
131
141
|
}
|
|
142
|
+
|
|
132
143
|
GUILayout.Space(1);
|
|
133
144
|
if (GUILayout.Button(new GUIContent(EditorIcons.icon_refresh, "刷新"), Styles.rbutton,
|
|
134
|
-
GUILayout.Width(40),GUILayout.Height(20)))
|
|
145
|
+
GUILayout.Width(40), GUILayout.Height(20)))
|
|
135
146
|
{
|
|
136
147
|
ReloadSettings();
|
|
137
148
|
Repaint();
|
|
138
149
|
}
|
|
150
|
+
|
|
139
151
|
GUILayout.Space(1);
|
|
140
152
|
|
|
141
153
|
if (GUILayout.Button(new GUIContent(EditorIcons.icon_extension, "更多"), Styles.rbutton,
|
|
142
|
-
GUILayout.Width(40),GUILayout.Height(20)))
|
|
154
|
+
GUILayout.Width(40), GUILayout.Height(20)))
|
|
143
155
|
{
|
|
144
156
|
var menu = new GenericMenu();
|
|
145
157
|
menu.AddItem(new GUIContent("导入常用配置"), false,
|
|
@@ -153,13 +165,14 @@ namespace TyphoonUnitySDK
|
|
|
153
165
|
rectSearch.y = rectToolbar.yMax;
|
|
154
166
|
rectSearch.height = 22;
|
|
155
167
|
InputTxtSearchSetting = GUI.TextField(rectSearch, InputTxtSearchSetting);
|
|
156
|
-
if(string.IsNullOrEmpty(InputTxtSearchSetting))
|
|
157
|
-
|
|
168
|
+
if (string.IsNullOrEmpty(InputTxtSearchSetting))
|
|
169
|
+
{
|
|
170
|
+
GUI.Label(rectSearch, "搜索...", Styles.rlabel_italic);
|
|
158
171
|
}
|
|
159
172
|
|
|
160
173
|
/*绘制菜单栏*/
|
|
161
174
|
var rectPos = rectLeftMenu;
|
|
162
|
-
rectPos.y = rectSearch.yMax+4;
|
|
175
|
+
rectPos.y = rectSearch.yMax + 4;
|
|
163
176
|
rectPos.height = rectLeftMenu.yMax - rectPos.y;
|
|
164
177
|
GUILayout.BeginArea(rectPos);
|
|
165
178
|
rectPos.x = 0;
|
|
@@ -206,7 +219,7 @@ namespace TyphoonUnitySDK
|
|
|
206
219
|
var lockRect = rectItem;
|
|
207
220
|
lockRect.width = 60;
|
|
208
221
|
lockRect.x = rectItem.xMax - lockRect.width;
|
|
209
|
-
GUI.Label(lockRect,"未开放",Styles.rlabel_italic);
|
|
222
|
+
GUI.Label(lockRect, "未开放", Styles.rlabel_italic);
|
|
210
223
|
}
|
|
211
224
|
}
|
|
212
225
|
|
|
@@ -241,7 +254,7 @@ namespace TyphoonUnitySDK
|
|
|
241
254
|
rectContent.height -= 8;
|
|
242
255
|
rectContent.width -= 8;
|
|
243
256
|
rectContent.center = rect.center;
|
|
244
|
-
|
|
257
|
+
|
|
245
258
|
if (_select == null)
|
|
246
259
|
{
|
|
247
260
|
var tipRect = rectContent;
|
|
@@ -370,5 +383,6 @@ namespace TyphoonUnitySDK
|
|
|
370
383
|
|
|
371
384
|
PublishSettings = hash;
|
|
372
385
|
}
|
|
386
|
+
|
|
373
387
|
}
|
|
374
388
|
}
|
package/Editor/UniEditor.cs
CHANGED
|
@@ -22,11 +22,22 @@ namespace TyphoonUnitySDK
|
|
|
22
22
|
/// </summary>
|
|
23
23
|
public static string PackagePath_PublishSetting = $"{PathRoot}/Sources~/Package/常用打包配置.unitypackage";
|
|
24
24
|
|
|
25
|
+
/// <summary>
|
|
26
|
+
/// China Android 资源包
|
|
27
|
+
/// </summary>
|
|
28
|
+
public static string PackagePath_ChinaAndroid = $"{PathRoot}/Sources~/Package/ChinaAndroid.unitypackage";
|
|
29
|
+
|
|
30
|
+
|
|
25
31
|
/// <summary>
|
|
26
32
|
/// 开启Addressable模块支持
|
|
27
33
|
/// </summary>
|
|
28
34
|
public static readonly string DEFINE_TYPHOON_ADDRESSABLE_NAME = "TYPHOON_ADDRESSABLE";
|
|
29
35
|
|
|
36
|
+
/// <summary>
|
|
37
|
+
/// apply历史记录
|
|
38
|
+
/// </summary>
|
|
39
|
+
public static readonly string APPLY_HISTORY = "Temp/typhoon_apply_history.txt";
|
|
40
|
+
|
|
30
41
|
|
|
31
42
|
/// <summary>
|
|
32
43
|
/// 插件包根目录
|
|
@@ -324,14 +335,13 @@ namespace TyphoonUnitySDK
|
|
|
324
335
|
{
|
|
325
336
|
return path;
|
|
326
337
|
}
|
|
327
|
-
|
|
328
338
|
path = Path.GetFullPath(path);
|
|
329
339
|
path = path.Replace("\\", "/");
|
|
330
340
|
var pp = Path.GetDirectoryName(Application.dataPath);
|
|
331
341
|
pp = pp.Replace("\\", "/");
|
|
332
342
|
pp += "/";
|
|
333
|
-
Debug.Log(pp);
|
|
334
|
-
Debug.Log(path);
|
|
343
|
+
// Debug.Log(pp);
|
|
344
|
+
// Debug.Log(path);
|
|
335
345
|
return path.Replace(pp, "");
|
|
336
346
|
}
|
|
337
347
|
|
|
@@ -447,5 +457,35 @@ namespace TyphoonUnitySDK
|
|
|
447
457
|
return !string.IsNullOrEmpty(Preferences.Default.GradlePath) &&
|
|
448
458
|
File.Exists($"{Preferences.Default.GradlePath}/gradle");
|
|
449
459
|
}
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
/// <summary>
|
|
463
|
+
/// 尝试获取apply历史记录
|
|
464
|
+
/// </summary>
|
|
465
|
+
public static bool TryGetApplyHistory(out string match)
|
|
466
|
+
{
|
|
467
|
+
match = default;
|
|
468
|
+
if (File.Exists(APPLY_HISTORY))
|
|
469
|
+
{
|
|
470
|
+
match = File.ReadAllText(APPLY_HISTORY);
|
|
471
|
+
return true;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/// <summary>
|
|
478
|
+
/// 写入apply历史记录
|
|
479
|
+
/// </summary>
|
|
480
|
+
public static void WriteApplyHistory(PublishSetting setting)
|
|
481
|
+
{
|
|
482
|
+
var dir = Path.GetDirectoryName(APPLY_HISTORY);
|
|
483
|
+
if (!Directory.Exists(dir))
|
|
484
|
+
{
|
|
485
|
+
Directory.CreateDirectory(dir);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
File.WriteAllText(APPLY_HISTORY, setting.name);
|
|
489
|
+
}
|
|
450
490
|
}
|
|
451
491
|
}
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Assets/Plugins/Android/libs/sdk_plug-release.aar
|
|
2
|
+
Assets/Plugins/Android/libs/unity_app-release.aar
|
|
3
|
+
Assets/Plugins/Android/libs/unity_launcher-release.aar
|
|
4
|
+
Assets/Plugins/Android/AndroidManifest.xml
|
|
5
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid
|
|
6
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/ChinaAndroidSdk.cs
|
|
7
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/ChinaAndroidSdk.cs.meta
|
|
8
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor.meta
|
|
9
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources.meta
|
|
10
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor/PublishChinaAndroidAAR.cs
|
|
11
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Editor/PublishChinaAndroidAAR.cs.meta
|
|
12
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources/TYPHOON_SDK_CHINA_ANDROID.prefab
|
|
13
|
+
Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/Resources/TYPHOON_SDK_CHINA_ANDROID.prefab.meta
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"com.typhoon.unitysdk","displayName":"typhoon unity sdk","version":"1.0.
|
|
1
|
+
{"name":"com.typhoon.unitysdk","displayName":"typhoon unity sdk","version":"1.0.18","description":"unity端个汇总渠道的sdk,统一接口,一键发布","unity":"2018.1","type":"tool","hideInEditor":false,"author":{"name":"Jan Zhang","email":"","url":""},"changelogUrl":"","documentationUrl":"","keywords":["typhoon"],"license":"","licensesUrl":"","customDependencies":[{"PackageName":"com.unity.nuget.newtonsoft-json","Value":"2.0.0"}],"dependencies":{"com.unity.nuget.newtonsoft-json":"2.0.0"}}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
-
package="com.typhoon.unity_launcher">
|
|
4
|
-
<application
|
|
5
|
-
android:icon="@mipmap/app_icon"
|
|
6
|
-
android:label="@string/app_name">
|
|
7
|
-
<activity
|
|
8
|
-
android:name="com.typhoon.unity_launcher.SplashActivity"
|
|
9
|
-
android:exported="true"
|
|
10
|
-
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
|
11
|
-
>
|
|
12
|
-
<intent-filter>
|
|
13
|
-
<action android:name="android.intent.action.MAIN" />
|
|
14
|
-
<category android:name="android.intent.category.LAUNCHER" />
|
|
15
|
-
</intent-filter>
|
|
16
|
-
</activity>
|
|
17
|
-
</application>
|
|
18
|
-
</manifest>
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 5f94d89077b170a4381c90f201c26655
|
|
3
|
-
PluginImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
iconMap: {}
|
|
7
|
-
executionOrder: {}
|
|
8
|
-
defineConstraints: []
|
|
9
|
-
isPreloaded: 0
|
|
10
|
-
isOverridable: 0
|
|
11
|
-
isExplicitlyReferenced: 0
|
|
12
|
-
validateReferences: 1
|
|
13
|
-
platformData:
|
|
14
|
-
- first:
|
|
15
|
-
Android: Android
|
|
16
|
-
second:
|
|
17
|
-
enabled: 1
|
|
18
|
-
settings: {}
|
|
19
|
-
- first:
|
|
20
|
-
Any:
|
|
21
|
-
second:
|
|
22
|
-
enabled: 0
|
|
23
|
-
settings: {}
|
|
24
|
-
- first:
|
|
25
|
-
Editor: Editor
|
|
26
|
-
second:
|
|
27
|
-
enabled: 0
|
|
28
|
-
settings:
|
|
29
|
-
DefaultValueInitialized: true
|
|
30
|
-
userData:
|
|
31
|
-
assetBundleName:
|
|
32
|
-
assetBundleVariant:
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 3e00c1a6fc73e2b48860f75842aa381e
|
|
3
|
-
PluginImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
iconMap: {}
|
|
7
|
-
executionOrder: {}
|
|
8
|
-
defineConstraints: []
|
|
9
|
-
isPreloaded: 0
|
|
10
|
-
isOverridable: 0
|
|
11
|
-
isExplicitlyReferenced: 0
|
|
12
|
-
validateReferences: 1
|
|
13
|
-
platformData:
|
|
14
|
-
- first:
|
|
15
|
-
Android: Android
|
|
16
|
-
second:
|
|
17
|
-
enabled: 1
|
|
18
|
-
settings: {}
|
|
19
|
-
- first:
|
|
20
|
-
Any:
|
|
21
|
-
second:
|
|
22
|
-
enabled: 0
|
|
23
|
-
settings: {}
|
|
24
|
-
- first:
|
|
25
|
-
Editor: Editor
|
|
26
|
-
second:
|
|
27
|
-
enabled: 0
|
|
28
|
-
settings:
|
|
29
|
-
DefaultValueInitialized: true
|
|
30
|
-
userData:
|
|
31
|
-
assetBundleName:
|
|
32
|
-
assetBundleVariant:
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: ab28817e8c6ab0947a6b8454f8e576da
|
|
3
|
-
PluginImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
iconMap: {}
|
|
7
|
-
executionOrder: {}
|
|
8
|
-
defineConstraints: []
|
|
9
|
-
isPreloaded: 0
|
|
10
|
-
isOverridable: 0
|
|
11
|
-
isExplicitlyReferenced: 0
|
|
12
|
-
validateReferences: 1
|
|
13
|
-
platformData:
|
|
14
|
-
- first:
|
|
15
|
-
Android: Android
|
|
16
|
-
second:
|
|
17
|
-
enabled: 1
|
|
18
|
-
settings: {}
|
|
19
|
-
- first:
|
|
20
|
-
Any:
|
|
21
|
-
second:
|
|
22
|
-
enabled: 0
|
|
23
|
-
settings: {}
|
|
24
|
-
- first:
|
|
25
|
-
Editor: Editor
|
|
26
|
-
second:
|
|
27
|
-
enabled: 0
|
|
28
|
-
settings:
|
|
29
|
-
DefaultValueInitialized: true
|
|
30
|
-
userData:
|
|
31
|
-
assetBundleName:
|
|
32
|
-
assetBundleVariant:
|
package/Sources~/ChinaAndroid/Assets/Typhoon_Gen/TyphoonSDK/Runtime/ChinaAndroid/ChinaAndroidSdk.cs
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
using System;
|
|
2
|
-
|
|
3
|
-
namespace TyphoonUnitySDK
|
|
4
|
-
{
|
|
5
|
-
/// <summary>
|
|
6
|
-
/// 国内安卓
|
|
7
|
-
/// </summary>
|
|
8
|
-
public class ChinaAndroidSdk : BaseSdk
|
|
9
|
-
{
|
|
10
|
-
public TyphoonSdkCallback CallbackInstance;
|
|
11
|
-
public AndroidInstance AndroidInstance;
|
|
12
|
-
//初始化
|
|
13
|
-
public override void OnCreate()
|
|
14
|
-
{
|
|
15
|
-
Log("on create china android sdk ...");
|
|
16
|
-
DontDestroyOnLoad(gameObject);
|
|
17
|
-
//创建回调
|
|
18
|
-
CallbackInstance = TyphoonSdkCallback.CreateInstance();
|
|
19
|
-
CallbackInstance.gameObject.name = "TYPHOON_SDK_CALL_BACK";
|
|
20
|
-
CallbackInstance.Initialize();
|
|
21
|
-
DontDestroyOnLoad(CallbackInstance.gameObject);
|
|
22
|
-
//创建android实例
|
|
23
|
-
AndroidInstance = AndroidInstance.CreateInstance();
|
|
24
|
-
AndroidInstance.gameObject.name = "TYPHOON_SDK_ANDROID_INSTANCE";
|
|
25
|
-
AndroidInstance.Initialize();
|
|
26
|
-
DontDestroyOnLoad(AndroidInstance.gameObject);
|
|
27
|
-
Log("on create china android sdk success");
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
#region 初始化SDK
|
|
31
|
-
|
|
32
|
-
public override void InitSdk(Action success, Action<string> fail)
|
|
33
|
-
{
|
|
34
|
-
AndroidInstance.CallWithSession(new SessionItem("initSdk", null, (res) =>
|
|
35
|
-
{
|
|
36
|
-
if (res == "ok")
|
|
37
|
-
{
|
|
38
|
-
success?.Invoke();
|
|
39
|
-
}
|
|
40
|
-
else
|
|
41
|
-
{
|
|
42
|
-
fail?.Invoke(res);
|
|
43
|
-
}
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
#endregion
|
|
48
|
-
|
|
49
|
-
#region 登录
|
|
50
|
-
|
|
51
|
-
public override void Login(Action success, Action<string> fail)
|
|
52
|
-
{
|
|
53
|
-
AndroidInstance.CallWithSession(new SessionItem("login", null, (res) =>
|
|
54
|
-
{
|
|
55
|
-
if (res == "ok")
|
|
56
|
-
{
|
|
57
|
-
success?.Invoke();
|
|
58
|
-
}
|
|
59
|
-
else
|
|
60
|
-
{
|
|
61
|
-
fail?.Invoke(res);
|
|
62
|
-
}
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
#endregion
|
|
67
|
-
|
|
68
|
-
#region 退出游戏
|
|
69
|
-
|
|
70
|
-
public override bool IsSupportExitGame()
|
|
71
|
-
{
|
|
72
|
-
return AndroidInstance.CallReturn<bool>("isSupportExitGame");
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
public override void ExitGame()
|
|
76
|
-
{
|
|
77
|
-
AndroidInstance.Call("exitGame");
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
#endregion
|
|
81
|
-
|
|
82
|
-
#region Banner
|
|
83
|
-
|
|
84
|
-
public override void ShowBanner(string scene, BannerPosition position)
|
|
85
|
-
{
|
|
86
|
-
AndroidInstance.Call("showBanner", scene, ((int)position));
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
public override void HideBanner(string scene)
|
|
90
|
-
{
|
|
91
|
-
AndroidInstance.Call("hideBanner", scene);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
#endregion
|
|
95
|
-
|
|
96
|
-
#region 视频广告
|
|
97
|
-
|
|
98
|
-
public override void ShowVideo(string scene, Action success, Action<string> fail)
|
|
99
|
-
{
|
|
100
|
-
AndroidInstance.CallWithSession(new SessionItem("showVideo", new { scene = scene }, (res) =>
|
|
101
|
-
{
|
|
102
|
-
if (res == "ok")
|
|
103
|
-
{
|
|
104
|
-
Log($"show video success scene:{scene}");
|
|
105
|
-
success?.Invoke();
|
|
106
|
-
}
|
|
107
|
-
else
|
|
108
|
-
{
|
|
109
|
-
Log($"show video fail {res} scene:{scene}");
|
|
110
|
-
fail?.Invoke(res);
|
|
111
|
-
}
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
#endregion
|
|
116
|
-
|
|
117
|
-
#region 插页广告
|
|
118
|
-
|
|
119
|
-
public override void ShowInters(string scene)
|
|
120
|
-
{
|
|
121
|
-
AndroidInstance.Call("showInters", scene);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
#endregion
|
|
125
|
-
|
|
126
|
-
#region 悬浮ICON
|
|
127
|
-
|
|
128
|
-
public override void ShowFloatIcon(string scene, float screenXP, float screenYP)
|
|
129
|
-
{
|
|
130
|
-
AndroidInstance.Call("showFloatIcon", scene, screenXP, screenYP);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
public override void HideFloatIcon(string scene)
|
|
134
|
-
{
|
|
135
|
-
AndroidInstance.Call("hideFloatIcon", scene);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
#endregion
|
|
139
|
-
|
|
140
|
-
#region 原生模板
|
|
141
|
-
|
|
142
|
-
public override void ShowNative(string scene)
|
|
143
|
-
{
|
|
144
|
-
AndroidInstance.Call("showNative", scene);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
public override void HideNative(string scene)
|
|
148
|
-
{
|
|
149
|
-
AndroidInstance.Call("hideNative", scene);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
#endregion
|
|
153
|
-
}
|
|
154
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
using System;
|
|
2
|
-
using System.IO;
|
|
3
|
-
using UnityEditor;
|
|
4
|
-
using UnityEditor.Android;
|
|
5
|
-
using UnityEngine;
|
|
6
|
-
|
|
7
|
-
namespace TyphoonUnitySDK
|
|
8
|
-
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
/// 发布流程-ChinaAndroidAAR
|
|
11
|
-
/// </summary>
|
|
12
|
-
public class PublishChinaAndroidAAR : IPublish
|
|
13
|
-
{
|
|
14
|
-
public PublishResult Publish(PublishSetting setting)
|
|
15
|
-
{
|
|
16
|
-
PublishResult result = new PublishResult();
|
|
17
|
-
//切换到工程模式
|
|
18
|
-
PublishTool.SwitchToProject();
|
|
19
|
-
|
|
20
|
-
if (!UniEditor.GradleIsMatch())
|
|
21
|
-
{
|
|
22
|
-
UniEditor.ShowMessageBox($"未配置gradle,去配置?", PreferencesWindow.Open);
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
var path = $".typhoonoutput/china_android_{DateTime.Now.ToString("yyyyMMddHHmmss")}";
|
|
27
|
-
if (!UniEditor.IsAsciiPath(path))
|
|
28
|
-
{
|
|
29
|
-
UniEditor.ShowMessageBox($"路径不符合要求,不支持中文路径:\n当前:{path}", null);
|
|
30
|
-
return result;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
UniEditor.TryDeleteFolder("Assets/Plugins/Android");
|
|
35
|
-
AssetDatabase.Refresh();
|
|
36
|
-
|
|
37
|
-
PublishTool.InvokeOnPublishStart(setting);
|
|
38
|
-
//导出前执行
|
|
39
|
-
BuildPipeline.BuildPlayer(EditorBuildSettings.scenes, path, BuildTarget.Android, BuildOptions.None);
|
|
40
|
-
if (!Directory.Exists(path))
|
|
41
|
-
{
|
|
42
|
-
return result;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
Debug.Log($"发布完成 {path}");
|
|
46
|
-
EditorUtility.RevealInFinder(path);
|
|
47
|
-
//生成发布bat
|
|
48
|
-
var gradle = Preferences.Default.GradlePath;
|
|
49
|
-
var publish_bat = $"{path}/publish.bat";
|
|
50
|
-
File.WriteAllText(publish_bat, $"{gradle}\\gradle assembleRelease --max-workers=8");
|
|
51
|
-
result.AndroidProj = path;
|
|
52
|
-
PublishTool.InvokeOnPublishEnd(setting, result);
|
|
53
|
-
return result;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
%YAML 1.1
|
|
2
|
-
%TAG !u! tag:unity3d.com,2011:
|
|
3
|
-
--- !u!1 &9093766737953046255
|
|
4
|
-
GameObject:
|
|
5
|
-
m_ObjectHideFlags: 0
|
|
6
|
-
m_CorrespondingSourceObject: {fileID: 0}
|
|
7
|
-
m_PrefabInstance: {fileID: 0}
|
|
8
|
-
m_PrefabAsset: {fileID: 0}
|
|
9
|
-
serializedVersion: 6
|
|
10
|
-
m_Component:
|
|
11
|
-
- component: {fileID: 2274013749723012757}
|
|
12
|
-
- component: {fileID: 7218307239069338908}
|
|
13
|
-
m_Layer: 0
|
|
14
|
-
m_Name: TYPHOON_SDK_CHINA_ANDROID
|
|
15
|
-
m_TagString: Untagged
|
|
16
|
-
m_Icon: {fileID: 0}
|
|
17
|
-
m_NavMeshLayer: 0
|
|
18
|
-
m_StaticEditorFlags: 0
|
|
19
|
-
m_IsActive: 1
|
|
20
|
-
--- !u!4 &2274013749723012757
|
|
21
|
-
Transform:
|
|
22
|
-
m_ObjectHideFlags: 0
|
|
23
|
-
m_CorrespondingSourceObject: {fileID: 0}
|
|
24
|
-
m_PrefabInstance: {fileID: 0}
|
|
25
|
-
m_PrefabAsset: {fileID: 0}
|
|
26
|
-
m_GameObject: {fileID: 9093766737953046255}
|
|
27
|
-
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
28
|
-
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
29
|
-
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
30
|
-
m_Children: []
|
|
31
|
-
m_Father: {fileID: 0}
|
|
32
|
-
m_RootOrder: 0
|
|
33
|
-
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
34
|
-
--- !u!114 &7218307239069338908
|
|
35
|
-
MonoBehaviour:
|
|
36
|
-
m_ObjectHideFlags: 0
|
|
37
|
-
m_CorrespondingSourceObject: {fileID: 0}
|
|
38
|
-
m_PrefabInstance: {fileID: 0}
|
|
39
|
-
m_PrefabAsset: {fileID: 0}
|
|
40
|
-
m_GameObject: {fileID: 9093766737953046255}
|
|
41
|
-
m_Enabled: 1
|
|
42
|
-
m_EditorHideFlags: 0
|
|
43
|
-
m_Script: {fileID: 11500000, guid: 740e1dabb1ce501408c63b39e066a580, type: 3}
|
|
44
|
-
m_Name:
|
|
45
|
-
m_EditorClassIdentifier:
|