com.typhoon.unitysdk 1.0.35 → 1.0.36

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.
@@ -32,6 +32,17 @@ namespace TyphoonUnitySDK
32
32
  };
33
33
 
34
34
 
35
+ /// <summary>
36
+ /// 保存所有渠道额外配置
37
+ /// </summary>
38
+ public static void SaveAllChannelConfig()
39
+ {
40
+ VivoMiniConfig.Default.Save();
41
+ WxMiniConfig.Default.Save();
42
+ DouyinConfig.Default.Save();
43
+ VariablePreset.Default.Save();
44
+ }
45
+
35
46
  /// <summary>
36
47
  /// 应用配置
37
48
  /// </summary>
@@ -68,8 +79,7 @@ namespace TyphoonUnitySDK
68
79
 
69
80
  //保存所有配置
70
81
  setting.Save();
71
- WxMiniConfig.Default.Save();
72
- DouyinConfig.Default.Save();
82
+ SaveAllChannelConfig();
73
83
  InvokeOnApplyStart(setting);
74
84
  if (!Applies.TryGetValue(setting.Channel, out var match))
75
85
  {
@@ -404,6 +414,7 @@ namespace TyphoonUnitySDK
404
414
  "Assets/WX-WASM-SDK-V2",
405
415
  "Assets/WebGLTemplates",
406
416
  "Assets/Plugins/ByteGame",
417
+ "Assets/VIVO-GAME-SDK",
407
418
  };
408
419
 
409
420
 
@@ -109,6 +109,7 @@ namespace TyphoonUnitySDK
109
109
  var manifest = new List<string>()
110
110
  {
111
111
  "Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini",
112
+ "Assets/VIVO-GAME-SDK",
112
113
  };
113
114
  if (!MakeSureExport(manifest))
114
115
  {
@@ -126,6 +126,22 @@ namespace TyphoonUnitySDK
126
126
  }
127
127
  }
128
128
 
129
+ /// <summary>
130
+ /// 绘制单选框
131
+ /// </summary>
132
+ public static void DrawPopUpToggleCustomTxt(bool on, Action<bool> setter, string yesTxt, string noTxt,
133
+ params GUILayoutOption[] option)
134
+ {
135
+ var txt = on ? yesTxt : noTxt;
136
+ if (GUILayout.Button(txt, "PopUp", option))
137
+ {
138
+ var menu = new GenericMenu();
139
+ menu.AddItem(new GUIContent("开"), false, () => setter?.Invoke(true));
140
+ menu.AddItem(new GUIContent("关"), false, () => setter?.Invoke(false));
141
+ menu.ShowAsContext();
142
+ }
143
+ }
144
+
129
145
 
130
146
  private static void ClickOn(ref bool on, bool setter)
131
147
  {
@@ -19,7 +19,7 @@ namespace TyphoonUnitySDK
19
19
  //插件名
20
20
  public enum PluginNames
21
21
  {
22
- NodeJsV13,
22
+ NodeJsV10_13,
23
23
  NodeJsV15,
24
24
  Openssl,
25
25
  QGToolKit, //快应用工具
@@ -51,16 +51,17 @@ namespace TyphoonUnitySDK
51
51
  // 插件清单
52
52
  public static PluginInfo[] PluginsManifest = new PluginInfo[]
53
53
  {
54
- new PluginInfo(PluginNames.NodeJsV13, "https://mecha.nthreecats.com/plugins/node-v10.13.0-win-x64.zip",
55
- "27f3768a492a3e816cb67cff7f38ff12", "node-v10.13.0-win-x64"),
54
+ new PluginInfo(PluginNames.NodeJsV10_13, "https://mecha.nthreecats.com/plugins/node-v10.13.0.zip",
55
+ "4fec379039bda31dd4f5d7dee27c8f84", "node-v10.13.0"),
56
56
  new PluginInfo(PluginNames.NodeJsV15, "https://mecha.nthreecats.com/plugins/node-v15.14.0-win-x64.zip",
57
57
  "40d03c7c1eed5c6943cc618086adfdf6", "node-v15.14.0-win-x64"),
58
58
  new PluginInfo(PluginNames.Openssl, "https://mecha.nthreecats.com/plugins/openssl.zip",
59
59
  "bfeb2896c357fdeea87a16ee913e8a65", "openssl"),
60
60
  new PluginInfo(PluginNames.QGToolKit, "https://mecha.nthreecats.com/plugins/quickgame-toolkit-unity.zip",
61
61
  "a11318f47be10876439a88baf2776b78", ""),
62
- new PluginInfo(PluginNames.VivoNodeModule, "https://mecha.nthreecats.com/plugins/vivo_node_modules.zip",
63
- "d945c1bc9473879fc4a2a3f120ca584e", ""),
62
+ new PluginInfo(PluginNames.VivoNodeModule,
63
+ "https://mecha.nthreecats.com/plugins/vivo_node_modules_v1.zip",
64
+ "c6ee54d0fa3dae6eca0ad6613f6c15e0", "vivo_node_modules"),
64
65
  };
65
66
 
66
67
  //获取插件信息
@@ -77,6 +78,14 @@ namespace TyphoonUnitySDK
77
78
  throw new Exception($"找不到PluginInfo:{pluginName}");
78
79
  }
79
80
 
81
+ /// <summary>
82
+ /// 获取插件根目录
83
+ /// </summary>
84
+ public static string GetPluginRootPath(PluginNames plugin)
85
+ {
86
+ return $"{GetPluginsFolder()}/{GetPluginInfo(plugin).FolderName}";
87
+ }
88
+
80
89
 
81
90
  public static string GetPluginsFolder()
82
91
  {
@@ -88,7 +97,7 @@ namespace TyphoonUnitySDK
88
97
  /// </summary>
89
98
  public static bool IsInstallNodeV13()
90
99
  {
91
- var root = $"{GetPluginsFolder()}/node-v10.13.0-win-x64";
100
+ var root = $"{GetPluginRootPath(PluginNames.NodeJsV10_13)}";
92
101
  var check = new[] { $"{root}/node_modules", $"{root}/node.exe", $"{root}/npm.cmd", };
93
102
  return CheckFilesOrDirectoryExists(check);
94
103
  }
@@ -98,24 +107,17 @@ namespace TyphoonUnitySDK
98
107
  /// </summary>
99
108
  public static async void InstallNodeV13Async(Action complete = null)
100
109
  {
101
- await InstallModule(PluginNames.NodeJsV13, complete);
110
+ await InstallModule(PluginNames.NodeJsV10_13, complete);
102
111
  }
103
112
 
104
- /// <summary>
105
- /// 获取插件根目录
106
- /// </summary>
107
- public static string GetPluginRootPath(PluginNames plugin)
108
- {
109
- return $"{GetPluginsFolder()}/{GetPluginInfo(plugin).FolderName}";
110
- }
111
113
 
112
114
  /// <summary>
113
115
  /// 是否安装openssl
114
116
  /// </summary>
115
117
  public static bool IsInstallOpenssl()
116
118
  {
117
- var info = GetPluginInfo(PluginNames.Openssl);
118
- var check = new[] { $"{GetPluginsFolder()}/{info.FolderName}/bin/openssl.exe" };
119
+ var root = GetPluginRootPath(PluginNames.Openssl);
120
+ var check = new[] { $"{root}/bin/openssl.exe" };
119
121
  return CheckFilesOrDirectoryExists(check);
120
122
  }
121
123
 
@@ -127,6 +129,24 @@ namespace TyphoonUnitySDK
127
129
  await InstallModule(PluginNames.Openssl, complete);
128
130
  }
129
131
 
132
+ /// <summary>
133
+ /// 是否安装了vivo_node_modules
134
+ /// </summary>
135
+ public static bool IsInstallVivoNodeModule()
136
+ {
137
+ var root = $"{GetPluginRootPath(PluginNames.VivoNodeModule)}";
138
+ var check = new[] { $"{root}/node_modules/.bin", $"{root}/node_modules/ylru" };
139
+ return CheckFilesOrDirectoryExists(check);
140
+ }
141
+
142
+ /// <summary>
143
+ /// 安装vivo_node_modules
144
+ /// </summary>
145
+ public static async void InstallVivoNodeModuleAsync(Action complete = null)
146
+ {
147
+ await InstallModule(PluginNames.VivoNodeModule, complete);
148
+ }
149
+
130
150
 
131
151
  public static async Task InstallModule(PluginNames pluginName, Action complete)
132
152
  {
@@ -39,7 +39,7 @@ namespace TyphoonUnitySDK
39
39
  if (GUI.Button(rectSave, new GUIContent("保存配置", EditorIcons.icon_save)))
40
40
  {
41
41
  EditorUtility.SetDirty(Preferences.Default);
42
- WxMiniConfig.Default.Save();
42
+ ApplyTool.SaveAllChannelConfig();
43
43
  AssetDatabase.SaveAssets();
44
44
  Debug.Log("保存完毕");
45
45
  }
@@ -8,10 +8,11 @@ namespace TyphoonUnitySDK
8
8
  Apk,
9
9
  IOS,
10
10
  Webgl,
11
- ChinaAndroidAAR,//国内android
11
+ ChinaAndroidAAR, //国内android
12
12
  WxMini, //微信小游戏
13
- DouyinAndroid,//抖音android
14
- DouyinIOS,//抖音ios
15
- GooglePlay,//google play
13
+ DouyinAndroid, //抖音android
14
+ DouyinIOS, //抖音ios
15
+ GooglePlay, //google play
16
+ VivoMini, //vivo小游戏
16
17
  }
17
18
  }
@@ -528,13 +528,13 @@ namespace TyphoonUnitySDK
528
528
  modify.VariableValue = GUILayout.TextField(modify.VariableValue);
529
529
  if (tem != modify.VariableValue)
530
530
  {
531
- //修改自定义变量
532
531
  VariablePreset.Default.Modify(modify.VariableName, modify.VariableValue);
533
532
  }
534
533
 
535
534
  GUILayout.EndHorizontal();
536
535
  }
537
536
 
537
+
538
538
  /*删除*/
539
539
  if (_cachePresetDelete != null)
540
540
  {
@@ -11,7 +11,7 @@ namespace TyphoonUnitySDK
11
11
  /// </summary>
12
12
  public interface IPublish
13
13
  {
14
- PublishResult Publish(PublishSetting setting);
14
+ void Publish(PublishSetting setting);
15
15
  }
16
16
 
17
17
  public class PublishTool
@@ -25,8 +25,8 @@ namespace TyphoonUnitySDK
25
25
  { PublishProcess.WxMini, "TyphoonUnitySDK.PublishWxMini" },
26
26
  { PublishProcess.DouyinAndroid, "TyphoonUnitySDK.PublishDouyinAndroid" },
27
27
  { PublishProcess.DouyinIOS, "TyphoonUnitySDK.PublishDouyinIOS" },
28
- { PublishProcess.GooglePlay, "TyphoonUnitySDK.PublishGooglePlay" }
29
-
28
+ { PublishProcess.GooglePlay, "TyphoonUnitySDK.PublishGooglePlay" },
29
+ { PublishProcess.VivoMini, "TyphoonUnitySDK.PublishVivoMini" },
30
30
  };
31
31
 
32
32
  /// <summary>
@@ -289,9 +289,7 @@ namespace TyphoonUnitySDK
289
289
  if (GUI.Button(rectSave, new GUIContent("保存配置", EditorIcons.icon_save)))
290
290
  {
291
291
  EditorUtility.SetDirty(_select);
292
- //保存其它配置
293
- WxMiniConfig.Default.Save();
294
- DouyinConfig.Default.Save();
292
+ ApplyTool.SaveAllChannelConfig();
295
293
  AssetDatabase.SaveAssets();
296
294
  }
297
295
 
@@ -4,9 +4,11 @@ using System.Diagnostics;
4
4
  using System.IO;
5
5
  using System.Linq;
6
6
  using System.Text;
7
+ using System.Threading.Tasks;
7
8
  using UnityEditor;
8
9
  using UnityEngine;
9
10
  using Debug = UnityEngine.Debug;
11
+ using AlphaDirectory = Alphaleonis.Win32.Filesystem.Directory;
10
12
 
11
13
  namespace TyphoonUnitySDK
12
14
  {
@@ -219,13 +221,11 @@ namespace TyphoonUnitySDK
219
221
  var assemblies = AppDomain.CurrentDomain.GetAssemblies();
220
222
  foreach (var element in assemblies)
221
223
  {
222
- var types = element.GetTypes();
223
- foreach (var type in types)
224
+ var type = element.GetType(typeName);
225
+
226
+ if (type != null)
224
227
  {
225
- if (type.FullName == typeName)
226
- {
227
- return type;
228
- }
228
+ return type;
229
229
  }
230
230
  }
231
231
 
@@ -412,6 +412,81 @@ namespace TyphoonUnitySDK
412
412
  }
413
413
  }
414
414
 
415
+
416
+ /// <summary>
417
+ /// 复制文件夹,带进度
418
+ /// </summary>
419
+ public static async Task CopyFolderWithProcess(string from, string to, Action<float> onProcess, Action complete,
420
+ int stepUnit = 200)
421
+ {
422
+ var dir = new HashSet<string>();
423
+ var files = new Dictionary<string, string>();
424
+ GetCopyFolderManifest(from, to, dir, files);
425
+ var total = dir.Count + files.Count;
426
+ var current = 0;
427
+ var step = 0;
428
+ if (total <= 0)
429
+ {
430
+ complete?.Invoke();
431
+ return;
432
+ }
433
+
434
+ foreach (var element in dir)
435
+ {
436
+ current += 1;
437
+ step += 1;
438
+ if (!Directory.Exists(element))
439
+ {
440
+ Directory.CreateDirectory(element);
441
+ }
442
+
443
+ if (step > stepUnit)
444
+ {
445
+ step = 0;
446
+ onProcess?.Invoke((float)current / total);
447
+ await Task.Yield();
448
+ }
449
+ }
450
+
451
+ foreach (var element in files)
452
+ {
453
+ current += 1;
454
+ step += 1;
455
+ var copyFrom = element.Key;
456
+ var copyTo = element.Value;
457
+ File.Copy(copyFrom, copyTo, true);
458
+ if (step > stepUnit)
459
+ {
460
+ step = 0;
461
+ onProcess?.Invoke((float)current / total);
462
+ await Task.Yield();
463
+ }
464
+ }
465
+
466
+ complete?.Invoke();
467
+ }
468
+
469
+
470
+ private static void GetCopyFolderManifest(string from, string to, HashSet<string> dirData,
471
+ Dictionary<string, string> filesData)
472
+ {
473
+ dirData.Add(to);
474
+ var info = new DirectoryInfo(from);
475
+ var files = info.GetFiles("*", SearchOption.TopDirectoryOnly);
476
+ var dir = info.GetDirectories("*", SearchOption.TopDirectoryOnly);
477
+ foreach (var element in files)
478
+ {
479
+ var copyTo = $"{to}/{element.Name}";
480
+ filesData[element.FullName] = copyTo;
481
+ }
482
+
483
+ foreach (var element in dir)
484
+ {
485
+ var copyDir = $"{to}/{element.Name}";
486
+ GetCopyFolderManifest(element.FullName, copyDir, dirData, filesData);
487
+ }
488
+ }
489
+
415
490
  /// <summary>
416
491
  /// 尝试删除文件夹
417
492
  /// </summary>
@@ -539,6 +614,7 @@ namespace TyphoonUnitySDK
539
614
  conf = conf.Replace("/", "\\");
540
615
  code = code.Replace("$OPENSSL_BIN$", bin);
541
616
  code = code.Replace("$OPENSSL_CONF$", conf);
617
+ code = code.Replace("$SIGN$", $"{ToWindowsExplorerFullPath("sign")}");
542
618
  File.WriteAllText(bat, code);
543
619
  if (!File.Exists(bat))
544
620
  {
@@ -547,99 +623,102 @@ namespace TyphoonUnitySDK
547
623
  else
548
624
  {
549
625
  RunBat(bat);
550
- // if (File.Exists(private_pem) && File.Exists(certificate_pem))
551
- // {
552
- // var private_pem_to = $"sign/{Path.GetFileName(private_pem)}";
553
- // var certificate_pem_to = $"sign/{Path.GetFileName(certificate_pem)}";
554
- // File.Copy(private_pem, private_pem_to, true);
555
- // File.Copy(certificate_pem, certificate_pem_to, true);
556
- // Debug.Log("生成成功");
557
- // }
558
- // else
559
- // {
560
- // throw new Exception($"生成失败,找不到:{private_pem} 或 {certificate_pem}");
561
- // }
562
626
  }
563
627
  }
564
628
  }
565
629
 
566
630
 
567
631
  /// <summary>
568
- /// 执行批处理
632
+ /// 转windows全路径
569
633
  /// </summary>
570
- public static void RunBat(string path, string args = "", Action complete = null)
634
+ public static string ToWindowsExplorerFullPath(string path)
571
635
  {
572
- // var bat = Path.GetFullPath(path);
573
- // var dir = Path.GetDirectoryName(bat);
574
- // using (Process p = new Process())
575
- // {
576
- // p.StartInfo.FileName = bat;
577
- // p.StartInfo.Arguments = args;
578
- // p.StartInfo.CreateNoWindow = false;
579
- // p.StartInfo.UseShellExecute = false;
580
- // p.StartInfo.RedirectStandardOutput = true;
581
- // p.StartInfo.WorkingDirectory = dir;
582
- // p.Start();
583
- // p.WaitForExit();
584
- // UnityEngine.Debug.Log(p.StandardOutput.ReadToEnd());
585
- // p.Close();
586
- // complete?.Invoke();
587
- // }
588
-
636
+ return Path.GetFullPath(path).Replace("/", "\\");
637
+ }
589
638
 
590
- using (var process = Process.Start("explorer", $"\"{Path.GetFullPath(path)}\" {args}"))
591
- {
592
- }
639
+ /// <summary>
640
+ /// 转untiy全路径
641
+ /// </summary>
642
+ public static string ToUnityRelativePath(string path)
643
+ {
644
+ return Path.GetFullPath(path).Replace("/", "\\").Replace(
645
+ $"{Path.GetDirectoryName(Application.dataPath)}\\", "")
646
+ .Replace("\\", "/");
593
647
  }
594
648
 
649
+ // /// <summary>
650
+ // /// 执行批处理
651
+ // /// </summary>
652
+ // public static void RunBat(string path, string args = "", Action complete = null)
653
+ // {
654
+ // using (var process = Process.Start("explorer", $"\"{Path.GetFullPath(path)}\" {args}"))
655
+ // {
656
+ // }
657
+ //
658
+ // }
659
+
595
660
 
596
661
  /// <summary>
597
662
  /// 执行批处理
598
663
  /// </summary>
599
- public static void Run(string batPath, params string[] args)
664
+ public static void RunBat(string batFile)
600
665
  {
601
- //获取批处理
602
- if (!File.Exists(batPath))
666
+ if (!File.Exists(batFile))
603
667
  {
604
- throw new Exception($"丢失 {batPath}");
668
+ Debug.LogError("bat文件不存在:" + batFile);
605
669
  }
606
-
607
- string inputArg = string.Empty;
608
- if (args != null)
670
+ else
609
671
  {
610
- StringBuilder sb = new StringBuilder();
611
- foreach (var element in args)
672
+ var workingDir = Path.GetDirectoryName(batFile);
673
+ var fileName = Path.GetFileName(batFile);
674
+ Process proc = null;
675
+ try
612
676
  {
613
- sb.Append(element);
614
- sb.Append(',');
677
+ proc = new Process();
678
+ proc.StartInfo.WorkingDirectory = workingDir;
679
+ proc.StartInfo.FileName = fileName;
680
+ // proc.StartInfo.RedirectStandardOutput = true;
681
+ // proc.StartInfo.UseShellExecute = false;
682
+ //proc.StartInfo.Arguments = args;
683
+ //proc.StartInfo.CreateNoWindow = true;
684
+ //proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//disable dos window
685
+ proc.Start();
686
+ proc.WaitForExit();
687
+ proc.Close();
688
+ // var output = proc.StandardOutput.ReadToEnd();
689
+ // Debug.Log(output);
615
690
  }
616
-
617
- inputArg = sb.ToString();
618
- if (inputArg.EndsWith(","))
691
+ catch (Exception ex)
619
692
  {
620
- inputArg.Remove(inputArg.Length - 1, 1);
693
+ Debug.LogFormat("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
621
694
  }
622
695
  }
696
+ }
623
697
 
624
- FileInfo info = new FileInfo(batPath);
625
- batPath = info.FullName;
626
- try
627
- {
628
- using (Process proc = new Process())
629
- {
630
- proc.StartInfo.FileName = batPath;
631
- proc.StartInfo.WorkingDirectory = info.Directory.FullName;
632
- if (inputArg.Length > 0)
633
- {
634
- proc.StartInfo.Arguments = inputArg;
635
- }
636
698
 
637
- proc.Start();
638
- }
699
+ /// <summary>
700
+ /// 删除文件夹适配长路径
701
+ /// </summary>
702
+ public static void DeleteFolder(string path, bool recursive = true)
703
+ {
704
+ var fullPath = Path.GetFullPath(path);
705
+ fullPath = fullPath.Replace("/", "\\");
706
+ if (Directory.Exists(fullPath))
707
+ {
708
+ AlphaDirectory.Delete(fullPath, recursive);
639
709
  }
640
- catch (Exception ex)
710
+ }
711
+
712
+ /// <summary>
713
+ /// 删除文件,适配长路径
714
+ /// </summary>
715
+ public static void DeleteFile(string path)
716
+ {
717
+ var fullPath = Path.GetFullPath(path);
718
+ fullPath = fullPath.Replace("/", "\\");
719
+ if (File.Exists(fullPath))
641
720
  {
642
- Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
721
+ Alphaleonis.Win32.Filesystem.File.Delete(path, true);
643
722
  }
644
723
  }
645
724
  }
@@ -30,16 +30,137 @@ namespace TyphoonUnitySDK
30
30
  { nameof(VivoMiniConfig.CDN), DrawProperty_CDN },
31
31
  { nameof(VivoMiniConfig.PrivatePem), DrawProperty_PrivatePem },
32
32
  { nameof(VivoMiniConfig.CertificatePem), DrawProperty_CertificatePem },
33
+ { nameof(VivoMiniConfig.BannerEnable), DrawProperty_BannerEnable },
34
+ { nameof(VivoMiniConfig.BannerPosId), DrawProperty_BannerPosId },
35
+ { nameof(VivoMiniConfig.BannerInterval), DrawProperty_BannerInterval },
36
+ { nameof(VivoMiniConfig.BannerBottom), DrawProperty_BannerBottom },
37
+ { nameof(VivoMiniConfig.IntersEnable), DrawProperty_IntersEnable },
38
+ { nameof(VivoMiniConfig.IntersPosId), DrawProperty_IntersPosId },
39
+ { nameof(VivoMiniConfig.IntersInterval), DrawProperty_IntersInterval },
40
+ { nameof(VivoMiniConfig.VideoEnable), DrawProperty_VideoEnable },
41
+ { nameof(VivoMiniConfig.VideoPosId), DrawProperty_VideoPosId },
42
+ { nameof(VivoMiniConfig.VideoResetIntersCool), DrawProperty_VideoResetIntersCool },
33
43
  };
34
44
 
45
+ private static bool DrawProperty_VideoResetIntersCool(VivoMiniConfig arg)
46
+ {
47
+ if (!arg.VideoEnable)
48
+ {
49
+ return true;
50
+ }
51
+
52
+ arg.VideoResetIntersCool = EditorGUILayout.IntField("激励后x秒不弹插页(-1不控制)", arg.VideoResetIntersCool);
53
+ return true;
54
+ }
55
+
56
+ private static bool DrawProperty_VideoPosId(VivoMiniConfig arg)
57
+ {
58
+ if (!arg.VideoEnable)
59
+ {
60
+ return true;
61
+ }
62
+
63
+ arg.VideoPosId = EditorGUILayout.TextField("激励视频 PosId", arg.VideoPosId);
64
+ return true;
65
+ }
66
+
67
+ private static bool DrawProperty_VideoEnable(VivoMiniConfig arg)
68
+ {
69
+ GUILayout.Space(5);
70
+ GUILayout.BeginHorizontal();
71
+ GUILayout.Label("激励视频开关", GUILayout.Width(146));
72
+ GUIDrawer.DrawPopUpToggle(arg.VideoEnable, (v) => arg.VideoEnable = v);
73
+ GUILayout.EndHorizontal();
74
+ return true;
75
+ }
76
+
77
+ private static bool DrawProperty_IntersInterval(VivoMiniConfig arg)
78
+ {
79
+ if (!arg.IntersEnable)
80
+ {
81
+ return true;
82
+ }
83
+
84
+ arg.IntersInterval = EditorGUILayout.IntField("插页冷却间隔(秒)", arg.IntersInterval);
85
+ return true;
86
+ }
87
+
88
+ private static bool DrawProperty_IntersPosId(VivoMiniConfig arg)
89
+ {
90
+ if (!arg.IntersEnable)
91
+ {
92
+ return true;
93
+ }
94
+
95
+ arg.IntersPosId = EditorGUILayout.TextField("插页 PosId", arg.IntersPosId);
96
+ return true;
97
+ }
98
+
99
+ private static bool DrawProperty_IntersEnable(VivoMiniConfig arg)
100
+ {
101
+ GUILayout.Space(5);
102
+ GUILayout.BeginHorizontal();
103
+ GUILayout.Label("插页开关", GUILayout.Width(146));
104
+ GUIDrawer.DrawPopUpToggle(arg.IntersEnable, (v) => arg.IntersEnable = v);
105
+ GUILayout.EndHorizontal();
106
+ return true;
107
+ }
108
+
109
+ private static bool DrawProperty_BannerBottom(VivoMiniConfig arg)
110
+ {
111
+ if (!arg.BannerEnable)
112
+ {
113
+ return true;
114
+ }
115
+
116
+ GUILayout.BeginHorizontal();
117
+ GUILayout.Label("Banner样式", GUILayout.Width(146));
118
+ GUIDrawer.DrawPopUpToggleCustomTxt(arg.BannerBottom, (v) => arg.BannerBottom = v, "底部", "顶部");
119
+ GUILayout.EndHorizontal();
120
+ return true;
121
+ }
122
+
123
+ private static bool DrawProperty_BannerInterval(VivoMiniConfig arg)
124
+ {
125
+ if (!arg.BannerEnable)
126
+ {
127
+ return true;
128
+ }
129
+
130
+ arg.BannerInterval = EditorGUILayout.IntSlider("Banner刷新间隔(秒)", arg.BannerInterval, 30, 120);
131
+ return true;
132
+ }
133
+
134
+ private static bool DrawProperty_BannerPosId(VivoMiniConfig arg)
135
+ {
136
+ if (!arg.BannerEnable)
137
+ {
138
+ return true;
139
+ }
140
+
141
+ arg.BannerPosId = EditorGUILayout.TextField("Banner PosId", arg.BannerPosId);
142
+ return true;
143
+ }
144
+
145
+ private static bool DrawProperty_BannerEnable(VivoMiniConfig arg)
146
+ {
147
+ GUILayout.Space(10);
148
+ GUILayout.Label("广告参数", Styles.rbold_title);
149
+ GUILayout.BeginHorizontal();
150
+ GUILayout.Label("Banner开关", GUILayout.Width(146));
151
+ GUIDrawer.DrawPopUpToggle(arg.BannerEnable, (v) => arg.BannerEnable = v);
152
+ GUILayout.EndHorizontal();
153
+ return true;
154
+ }
155
+
35
156
  private static bool DrawProperty_CertificatePem(VivoMiniConfig arg)
36
157
  {
37
158
  GUILayout.BeginHorizontal();
38
159
  arg.CertificatePem = EditorGUILayout.TextField("certificate.pem", arg.CertificatePem);
39
160
  if (GUILayout.Button("选择", GUILayout.Width(60)))
40
161
  {
41
- var file = EditorUtility.OpenFilePanel("请选择certificate.pem", Application.dataPath, ".pem");
42
- arg.CertificatePem = file;
162
+ var file = EditorUtility.OpenFilePanel("请选择certificate.pem", Application.dataPath, "pem");
163
+ arg.CertificatePem = UniEditor.ToUnityRelativePath(file);
43
164
  }
44
165
 
45
166
  GUILayout.EndHorizontal();
@@ -70,8 +191,9 @@ namespace TyphoonUnitySDK
70
191
  arg.PrivatePem = EditorGUILayout.TextField("private.pem", arg.PrivatePem);
71
192
  if (GUILayout.Button("选择", GUILayout.Width(60)))
72
193
  {
73
- var file = EditorUtility.OpenFilePanel("请选择private.pem", Application.dataPath, ".pem");
74
- arg.PrivatePem = file;
194
+ var file = EditorUtility.OpenFilePanel("请选择private.pem", Application.dataPath, "pem");
195
+ //尝试转成相对路径
196
+ arg.PrivatePem = UniEditor.ToUnityRelativePath(file);
75
197
  }
76
198
 
77
199
  GUILayout.EndHorizontal();
@@ -152,7 +274,7 @@ namespace TyphoonUnitySDK
152
274
  private static bool DrawProperty_LoadBackground(VivoMiniConfig arg)
153
275
  {
154
276
  arg.LoadBackground =
155
- (Texture)EditorGUILayout.ObjectField("加载背景(可选)", arg.LoadBackground, typeof(Texture), false);
277
+ (Texture)EditorGUILayout.ObjectField("加载背景(可选,默认纯黑)", arg.LoadBackground, typeof(Texture), false);
156
278
  return true;
157
279
  }
158
280
 
@@ -286,6 +408,19 @@ namespace TyphoonUnitySDK
286
408
  public int VersionCode = 1; //版本号
287
409
  public string CDN = "https://xxx.xx.xx";
288
410
 
411
+ [Header("广告参数")] public bool BannerEnable = false; //开关,[bool]
412
+ public int BannerInterval = 30; //刷新间隔(单位秒)不小于30s[number]
413
+ public string BannerPosId = ""; //banner广告位ID,[string]
414
+ public bool BannerBottom = true; //1表示底部banner,0表示顶部banner[number]
415
+
416
+ public bool IntersEnable = false; //开关[bool]
417
+ public int IntersInterval = 30; //插屏冷却时间(单位秒)[number]
418
+ public string IntersPosId = ""; //插屏广告位ID[string]
419
+
420
+ public bool VideoEnable = false; //开关[bool]
421
+ public int VideoResetIntersCool = 40; //播放视频广告后x秒后不弹出插页广告,-1为不控制[number]
422
+ public string VideoPosId = ""; //插屏广告位ID[string]
423
+
289
424
  public string GetFinalCDN()
290
425
  {
291
426
  var result = CDN.Replace("[版本号]", VersionCode.ToString());
@@ -70,9 +70,11 @@ namespace TyphoonUnitySDK
70
70
  GUILayout.BeginHorizontal();
71
71
  arg.CDN = EditorGUILayout.TextField("CDN地址 (后台配白名单)", arg.CDN);
72
72
  GUILayout.EndHorizontal();
73
- GUILayout.TextArea($"支持与自定义变量组合,[变量名]作为占位符\n最终地址:{VariablePreset.Default.ParserToString(arg.CDN)}",
74
- "helpBox",
75
- GUILayout.Height(44));
73
+ GUIDrawer.DrawKeynotes($"支持与自定义变量组合,[变量名]作为占位符\n最终地址:{VariablePreset.Default.ParserToString(arg.CDN)}");
74
+ // GUILayout.TextArea($"支持与自定义变量组合,[变量名]作为占位符\n最终地址:{VariablePreset.Default.ParserToString(arg.CDN)}",
75
+ // "helpBox",
76
+ // GUILayout.Height(44));
77
+ GUILayout.Space(5);
76
78
  return true;
77
79
  }
78
80
 
@@ -3,8 +3,9 @@ call openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -config "$OPE
3
3
 
4
4
  if %errorlevel% equ 0 (
5
5
  echo Build completed successfully.
6
- rem copy to sign folder
7
- call explorer "$OPENSSL_BIN$"
6
+ copy "$OPENSSL_BIN$\private.pem" "$SIGN$\private.pem"
7
+ copy "$OPENSSL_BIN$\certificate.pem" "$SIGN$\certificate.pem"
8
+ call explorer "$SIGN$"
8
9
  exit
9
10
  ) else (
10
11
  echo Build encountered an error.
Binary file
@@ -0,0 +1,33 @@
1
+ fileFormatVersion: 2
2
+ guid: 845273eba6f914b45a62bc13382629a6
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
+ Any:
16
+ second:
17
+ enabled: 0
18
+ settings: {}
19
+ - first:
20
+ Editor: Editor
21
+ second:
22
+ enabled: 1
23
+ settings:
24
+ DefaultValueInitialized: true
25
+ - first:
26
+ Windows Store Apps: WindowsStoreApps
27
+ second:
28
+ enabled: 0
29
+ settings:
30
+ CPU: AnyCPU
31
+ userData:
32
+ assetBundleName:
33
+ assetBundleVariant:
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: c6540c7e049db634bb0d0bdc3b8d1baa
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -33,7 +33,7 @@ namespace TyphoonUnitySDK
33
33
  {
34
34
  SdkDebug.Log($"CallWithSession {session.MethodName} {session.SendData}");
35
35
  //避免为空
36
- var data = session.SendData.ToJson();
36
+ var data = session.SendData.ToXJson();
37
37
  data = data ?? "";
38
38
  AndroidJavaObject?.Call("receiveSessionFromUnity", session.MethodName, session.SessionId, data);
39
39
  }
@@ -7,12 +7,18 @@ namespace TyphoonUnitySDK
7
7
  /// </summary>
8
8
  public static partial class Extension
9
9
  {
10
- public static T ToObject<T>(this string json)
10
+ /// <summary>
11
+ /// 从json到object
12
+ /// </summary>
13
+ public static T ToXObject<T>(this string json)
11
14
  {
12
15
  return JsonConvert.DeserializeObject<T>(json);
13
16
  }
14
17
 
15
- public static string ToJson(this object obj)
18
+ /// <summary>
19
+ /// 从object到json
20
+ /// </summary>
21
+ public static string ToXJson(this object obj)
16
22
  {
17
23
  var json = JsonConvert.SerializeObject(obj);
18
24
  return json;
@@ -19,6 +19,7 @@ namespace TyphoonUnitySDK
19
19
  { AppChannel.DouyinAndroid, "TyphoonUnitySDK.DouyinSdk" }, //抖音小游戏
20
20
  { AppChannel.DouyinIOS, "TyphoonUnitySDK.DouyinSdk" }, //抖音小游戏
21
21
  { AppChannel.GooglePlay, "TyphoonUnitySDK.GooglePlaySdk" }, //GooglePlay
22
+ { AppChannel.VivoMini, "TyphoonUnitySDK.VivoMiniSdk" }, //Vivo小游戏
22
23
  };
23
24
 
24
25
  private ISdk _sdk;
@@ -36,12 +36,18 @@ namespace TyphoonUnitySDK
36
36
 
37
37
  public void Update()
38
38
  {
39
- if (Input.GetKeyDown(KeyCode.Escape))
39
+ switch (AppConfig.Channel)
40
40
  {
41
- if (TyphoonSdk.Instance.IsSupportExitGame())
42
- {
43
- TyphoonSdk.Instance.ExitGame();
44
- }
41
+ case AppChannel.ChinaAndroid:
42
+ if (Input.GetKeyDown(KeyCode.Escape))
43
+ {
44
+ if (TyphoonSdk.Instance.IsSupportExitGame())
45
+ {
46
+ TyphoonSdk.Instance.ExitGame();
47
+ }
48
+ }
49
+
50
+ break;
45
51
  }
46
52
  }
47
53
  }
@@ -7,11 +7,255 @@ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/VivoMiniSdk.cs
7
7
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/VivoMiniSdk.cs.meta
8
8
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/VivoMiniSdkCallBack.cs
9
9
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/VivoMiniSdkCallBack.cs.meta
10
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/black4x4.png
11
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/black4x4.png.meta
12
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/game.js
13
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/game.js.meta
14
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/minigame.config.js
15
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/minigame.config.js.meta
10
16
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/PublishVivoMini.cs
11
17
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/PublishVivoMini.cs.meta
12
18
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-mini-sdk-vivo.js
13
19
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-mini-sdk-vivo.js.meta
20
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-unity-vivo-config.js
21
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-unity-vivo-config.js.meta
14
22
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-unity-vivo.js
15
23
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/typhoon-unity-vivo.js.meta
24
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/VivoManifestJsonData.cs
25
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/VivoManifestJsonData.cs.meta
26
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/发布说明.txt
27
+ Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Editor/发布说明.txt.meta
16
28
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Plugins/_unity_js_bridge.jslib
17
29
  Assets/Typhoon_Gen/TyphoonSDK/Runtime/VivoMini/Plugins/_unity_js_bridge.jslib.meta
30
+ Assets/VIVO-GAME-SDK
31
+ Assets/VIVO-GAME-SDK/CHANGELOG.md
32
+ Assets/VIVO-GAME-SDK/CHANGELOG.md.meta
33
+ Assets/VIVO-GAME-SDK/Default.meta
34
+ Assets/VIVO-GAME-SDK/Editor.meta
35
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib.meta
36
+ Assets/VIVO-GAME-SDK/PlayerPrefs.cs
37
+ Assets/VIVO-GAME-SDK/PlayerPrefs.cs.meta
38
+ Assets/VIVO-GAME-SDK/Plugins.meta
39
+ Assets/VIVO-GAME-SDK/QG.cs
40
+ Assets/VIVO-GAME-SDK/QG.cs.meta
41
+ Assets/VIVO-GAME-SDK/QGBannerAd.cs
42
+ Assets/VIVO-GAME-SDK/QGBannerAd.cs.meta
43
+ Assets/VIVO-GAME-SDK/QGBaseAd.cs
44
+ Assets/VIVO-GAME-SDK/QGBaseAd.cs.meta
45
+ Assets/VIVO-GAME-SDK/QGBoxBannerAd.cs
46
+ Assets/VIVO-GAME-SDK/QGBoxBannerAd.cs.meta
47
+ Assets/VIVO-GAME-SDK/QGBoxPortalAd.cs
48
+ Assets/VIVO-GAME-SDK/QGBoxPortalAd.cs.meta
49
+ Assets/VIVO-GAME-SDK/QGCallBackManager.cs
50
+ Assets/VIVO-GAME-SDK/QGCallBackManager.cs.meta
51
+ Assets/VIVO-GAME-SDK/QGCustomAd.cs
52
+ Assets/VIVO-GAME-SDK/QGCustomAd.cs.meta
53
+ Assets/VIVO-GAME-SDK/QGInterstitialAd.cs
54
+ Assets/VIVO-GAME-SDK/QGInterstitialAd.cs.meta
55
+ Assets/VIVO-GAME-SDK/QGLog.cs
56
+ Assets/VIVO-GAME-SDK/QGLog.cs.meta
57
+ Assets/VIVO-GAME-SDK/QGMiniGameManager.cs
58
+ Assets/VIVO-GAME-SDK/QGMiniGameManager.cs.meta
59
+ Assets/VIVO-GAME-SDK/QGModel.cs
60
+ Assets/VIVO-GAME-SDK/QGModel.cs.meta
61
+ Assets/VIVO-GAME-SDK/QGNativeAd.cs
62
+ Assets/VIVO-GAME-SDK/QGNativeAd.cs.meta
63
+ Assets/VIVO-GAME-SDK/QGRewardedVideoAd.cs
64
+ Assets/VIVO-GAME-SDK/QGRewardedVideoAd.cs.meta
65
+ Assets/VIVO-GAME-SDK/Default/babel.config.js
66
+ Assets/VIVO-GAME-SDK/Default/babel.config.js.meta
67
+ Assets/VIVO-GAME-SDK/Default/engine.meta
68
+ Assets/VIVO-GAME-SDK/Default/minigame.config.js
69
+ Assets/VIVO-GAME-SDK/Default/minigame.config.js.meta
70
+ Assets/VIVO-GAME-SDK/Default/package.json
71
+ Assets/VIVO-GAME-SDK/Default/package.json.meta
72
+ Assets/VIVO-GAME-SDK/Default/sign.meta
73
+ Assets/VIVO-GAME-SDK/Default/src.meta
74
+ Assets/VIVO-GAME-SDK/Default/engine/qgame-adapter.js
75
+ Assets/VIVO-GAME-SDK/Default/engine/qgame-adapter.js.meta
76
+ Assets/VIVO-GAME-SDK/Default/engine/store.js
77
+ Assets/VIVO-GAME-SDK/Default/engine/store.js.meta
78
+ Assets/VIVO-GAME-SDK/Default/engine/unityAdapter.js
79
+ Assets/VIVO-GAME-SDK/Default/engine/unityAdapter.js.meta
80
+ Assets/VIVO-GAME-SDK/Default/sign/debug.meta
81
+ Assets/VIVO-GAME-SDK/Default/sign/debug/certificate.pem
82
+ Assets/VIVO-GAME-SDK/Default/sign/debug/certificate.pem.meta
83
+ Assets/VIVO-GAME-SDK/Default/sign/debug/private.pem
84
+ Assets/VIVO-GAME-SDK/Default/sign/debug/private.pem.meta
85
+ Assets/VIVO-GAME-SDK/Default/src/game.js
86
+ Assets/VIVO-GAME-SDK/Default/src/game.js.meta
87
+ Assets/VIVO-GAME-SDK/Default/src/image.meta
88
+ Assets/VIVO-GAME-SDK/Default/src/manifest.json
89
+ Assets/VIVO-GAME-SDK/Default/src/manifest.json.meta
90
+ Assets/VIVO-GAME-SDK/Default/src/md5.js
91
+ Assets/VIVO-GAME-SDK/Default/src/md5.js.meta
92
+ Assets/VIVO-GAME-SDK/Default/src/image/logo.png
93
+ Assets/VIVO-GAME-SDK/Default/src/image/logo.png.meta
94
+ Assets/VIVO-GAME-SDK/Editor/Optimize.dll
95
+ Assets/VIVO-GAME-SDK/Editor/Optimize.dll.meta
96
+ Assets/VIVO-GAME-SDK/Editor/QGEditorWindow.cs
97
+ Assets/VIVO-GAME-SDK/Editor/QGEditorWindow.cs.meta
98
+ Assets/VIVO-GAME-SDK/Editor/QGGameConfig.asset
99
+ Assets/VIVO-GAME-SDK/Editor/QGGameConfig.asset.meta
100
+ Assets/VIVO-GAME-SDK/Editor/QGGameConfig.cs
101
+ Assets/VIVO-GAME-SDK/Editor/QGGameConfig.cs.meta
102
+ Assets/VIVO-GAME-SDK/Editor/QGGameTools.cs
103
+ Assets/VIVO-GAME-SDK/Editor/QGGameTools.cs.meta
104
+ Assets/VIVO-GAME-SDK/Editor/QGReplaceRules.cs
105
+ Assets/VIVO-GAME-SDK/Editor/QGReplaceRules.cs.meta
106
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/AssemblyInfo.cs
107
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/AssemblyInfo.cs.meta
108
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2.meta
109
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum.meta
110
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Compress.Info.dll
111
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Compress.Info.dll.meta
112
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core.meta
113
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption.meta
114
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip.meta
115
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.csproj
116
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.csproj.meta
117
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw.meta
118
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj.meta
119
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/SharpZipBaseException.cs
120
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/SharpZipBaseException.cs.meta
121
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar.meta
122
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip.meta
123
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2.cs
124
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2.cs.meta
125
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs
126
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs.meta
127
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs
128
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs.meta
129
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs
130
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs.meta
131
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs
132
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs.meta
133
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/Adler32.cs
134
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/Adler32.cs.meta
135
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs
136
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs.meta
137
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/Crc32.cs
138
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/Crc32.cs.meta
139
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs
140
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs.meta
141
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs
142
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs.meta
143
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/INameTransform.cs
144
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/INameTransform.cs.meta
145
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/IScanFilter.cs
146
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/IScanFilter.cs.meta
147
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/NameFilter.cs
148
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/NameFilter.cs.meta
149
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/PathFilter.cs
150
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/PathFilter.cs.meta
151
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/StreamUtils.cs
152
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/StreamUtils.cs.meta
153
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/WindowsPathUtils.cs
154
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Core/WindowsPathUtils.cs.meta
155
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs
156
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs.meta
157
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs
158
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs.meta
159
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs
160
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs.meta
161
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZip.cs
162
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZip.cs.meta
163
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs
164
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs.meta
165
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipException.cs
166
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipException.cs.meta
167
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipFile.cs
168
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GZipFile.cs.meta
169
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs
170
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs.meta
171
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs
172
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs.meta
173
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs
174
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs.meta
175
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwException.cs
176
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwException.cs.meta
177
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs
178
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs.meta
179
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug.meta
180
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
181
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache.meta
182
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/ICSharpCode.SharpZipLib.csproj.FileListAbsolute.txt
183
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/ICSharpCode.SharpZipLib.csproj.FileListAbsolute.txt.meta
184
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
185
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs.meta
186
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
187
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs.meta
188
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
189
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs.meta
190
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs
191
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs.meta
192
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarArchive.cs
193
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarArchive.cs.meta
194
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs
195
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs.meta
196
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarEntry.cs
197
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarEntry.cs.meta
198
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarException.cs
199
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarException.cs.meta
200
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarHeader.cs
201
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarHeader.cs.meta
202
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs
203
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs.meta
204
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs
205
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs.meta
206
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression.meta
207
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/FastZip.cs
208
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/FastZip.cs.meta
209
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs
210
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs.meta
211
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs
212
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs.meta
213
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs
214
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs.meta
215
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs
216
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs.meta
217
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs
218
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs.meta
219
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipException.cs
220
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipException.cs.meta
221
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs
222
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs.meta
223
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipFile.cs
224
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipFile.cs.meta
225
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs
226
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs.meta
227
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs
228
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs.meta
229
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs
230
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs.meta
231
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs
232
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs.meta
233
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs
234
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs.meta
235
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs
236
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs.meta
237
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs
238
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs.meta
239
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs
240
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs.meta
241
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs
242
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs.meta
243
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs
244
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs.meta
245
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs
246
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs.meta
247
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs
248
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs.meta
249
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs
250
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs.meta
251
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams.meta
252
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs
253
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs.meta
254
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs
255
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs.meta
256
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs
257
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs.meta
258
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs
259
+ Assets/VIVO-GAME-SDK/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs.meta
260
+ Assets/VIVO-GAME-SDK/Plugins/qg.minigame.jslib
261
+ Assets/VIVO-GAME-SDK/Plugins/qg.minigame.jslib.meta
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"com.typhoon.unitysdk","displayName":"typhoon unity sdk","version":"1.0.35","description":"","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
+ {"name":"com.typhoon.unitysdk","displayName":"typhoon unity sdk","version":"1.0.36","description":"","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"}}