com.beanbag.tiktokminigames 1.0.0
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/DefaultTemplate/backgroundlandscape.png +0 -0
- package/DefaultTemplate/backgroundlandscape.png.meta +159 -0
- package/DefaultTemplate/backgroundportrait.png +0 -0
- package/DefaultTemplate/backgroundportrait.png.meta +159 -0
- package/DefaultTemplate/game.js +151 -0
- package/DefaultTemplate/game.js.meta +7 -0
- package/DefaultTemplate/images/unity_logo.png +0 -0
- package/DefaultTemplate/images/unity_logo.png.meta +159 -0
- package/DefaultTemplate/images.meta +8 -0
- package/DefaultTemplate/plugin-config.js +23 -0
- package/DefaultTemplate/plugin-config.js.meta +7 -0
- package/DefaultTemplate/plugin.js +1 -0
- package/DefaultTemplate/plugin.js.meta +7 -0
- package/DefaultTemplate/unity-namespace.js +11 -0
- package/DefaultTemplate/unity-namespace.js.meta +7 -0
- package/DefaultTemplate/webgl-wasm-split.js +17 -0
- package/DefaultTemplate/webgl-wasm-split.js.meta +7 -0
- package/DefaultTemplate.meta +8 -0
- package/Editor/Extras/Integration/DouYinMiniGameSettings.cs +30 -0
- package/Editor/Extras/Integration/DouYinMiniGameSettings.cs.meta +11 -0
- package/Editor/Extras/Integration/DouYinMiniGameSettingsEditor.cs +354 -0
- package/Editor/Extras/Integration/DouYinMiniGameSettingsEditor.cs.meta +3 -0
- package/Editor/Extras/Integration/DouYinSubplatformInterface.cs +153 -0
- package/Editor/Extras/Integration/DouYinSubplatformInterface.cs.meta +3 -0
- package/Editor/Extras/Integration.meta +8 -0
- package/Editor/Extras/Providers/TTMiniGameSupportProvider.cs +148 -0
- package/Editor/Extras/Providers/TTMiniGameSupportProvider.cs.meta +3 -0
- package/Editor/Extras/Providers.meta +3 -0
- package/Editor/Extras/TTEditorSupportProviderRegister.cs +15 -0
- package/Editor/Extras/TTEditorSupportProviderRegister.cs.meta +3 -0
- package/Editor/Extras.meta +3 -0
- package/Editor/ttsdk_tools.dll +0 -0
- package/Editor/ttsdk_tools.dll.meta +33 -0
- package/Editor/ttsdk_tools.pdb +0 -0
- package/Editor/ttsdk_tools.pdb.meta +7 -0
- package/Editor.meta +8 -0
- package/LitJson/TTLitJson.dll +0 -0
- package/LitJson/TTLitJson.dll.meta +33 -0
- package/LitJson/TTLitJson.pdb +0 -0
- package/LitJson/TTLitJson.pdb.meta +7 -0
- package/LitJson.meta +8 -0
- package/TTSDK/ttsdk.dll +0 -0
- package/TTSDK/ttsdk.dll.meta +33 -0
- package/TTSDK/ttsdk.pdb +0 -0
- package/TTSDK/ttsdk.pdb.meta +7 -0
- package/TTSDK.meta +8 -0
- package/WebGL/AssetBundle/DownloadHandlerTTAssetBundle.cs +85 -0
- package/WebGL/AssetBundle/DownloadHandlerTTAssetBundle.cs.meta +3 -0
- package/WebGL/AssetBundle/TTAssetBundle.cs +72 -0
- package/WebGL/AssetBundle/TTAssetBundle.cs.meta +3 -0
- package/WebGL/AssetBundle/TTAssetBundleExtensions.cs +25 -0
- package/WebGL/AssetBundle/TTAssetBundleExtensions.cs.meta +3 -0
- package/WebGL/AssetBundle/TTAssetBundleProviders.cs.txt +1301 -0
- package/WebGL/AssetBundle/TTAssetBundleProviders.cs.txt.meta +3 -0
- package/WebGL/AssetBundle/TTAssetBundleRequest.cs +96 -0
- package/WebGL/AssetBundle/TTAssetBundleRequest.cs.meta +3 -0
- package/WebGL/AssetBundle.meta +8 -0
- package/WebGL/Compatibility/UnityCacheCompatibility.cs +49 -0
- package/WebGL/Compatibility/UnityCacheCompatibility.cs.meta +3 -0
- package/WebGL/Compatibility/UnityWebRequestCompatibility.cs +18 -0
- package/WebGL/Compatibility/UnityWebRequestCompatibility.cs.meta +3 -0
- package/WebGL/Compatibility.meta +3 -0
- package/WebGL/FileSystem/TTFileSystemManager.cs +460 -0
- package/WebGL/FileSystem/TTFileSystemManager.cs.meta +11 -0
- package/WebGL/FileSystem/TTFileSystemManagerDefault.cs +1039 -0
- package/WebGL/FileSystem/TTFileSystemManagerDefault.cs.meta +11 -0
- package/WebGL/FileSystem/TTFileSystemManagerWebGL.cs +1278 -0
- package/WebGL/FileSystem/TTFileSystemManagerWebGL.cs.meta +11 -0
- package/WebGL/FileSystem.meta +3 -0
- package/WebGL/Input/Input.cs +230 -0
- package/WebGL/Input/Input.cs.meta +3 -0
- package/WebGL/Input/TTPCInputHandler.cs +199 -0
- package/WebGL/Input/TTPCInputHandler.cs.meta +3 -0
- package/WebGL/Input.meta +3 -0
- package/WebGL/Network/TTUDPSocketHandler.cs +130 -0
- package/WebGL/Network/TTUDPSocketHandler.cs.meta +11 -0
- package/WebGL/Network.meta +3 -0
- package/WebGL/TTAssetBundle.jslib +33 -0
- package/WebGL/TTAssetBundle.jslib.meta +32 -0
- package/WebGL/TTCallbackHandler.cs +139 -0
- package/WebGL/TTCallbackHandler.cs.meta +3 -0
- package/WebGL/TTModel.cs +582 -0
- package/WebGL/TTModel.cs.meta +11 -0
- package/WebGL/TTSDK.jslib +592 -0
- package/WebGL/TTSDK.jslib.meta +32 -0
- package/WebGL/TTSDKType.cs +10 -0
- package/WebGL/TTSDKType.cs.meta +3 -0
- package/WebGL/TTStorageManager.cs +155 -0
- package/WebGL/TTStorageManager.cs.meta +11 -0
- package/WebGL/TTUNBridge.jslib +117 -0
- package/WebGL/TTUNBridge.jslib.meta +32 -0
- package/WebGL/TTVersionAttribute.cs +21 -0
- package/WebGL/TTVersionAttribute.cs.meta +11 -0
- package/WebGL/TTWebGL.asmdef +18 -0
- package/WebGL/TTWebGL.asmdef.meta +7 -0
- package/WebGL/TTWebGLInterface.cs +63 -0
- package/WebGL/TTWebGLInterface.cs.meta +11 -0
- package/WebGL.meta +8 -0
- package/package.json +13 -0
- package/package.json.meta +7 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
using System;
|
|
2
|
+
using System.Collections;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Runtime.InteropServices;
|
|
5
|
+
using AOT;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
using UnityEngine.Scripting;
|
|
8
|
+
using Random = UnityEngine.Random;
|
|
9
|
+
|
|
10
|
+
namespace TTSDK
|
|
11
|
+
{
|
|
12
|
+
public class TTAssetBundleRequest : AsyncOperation, IEnumerator
|
|
13
|
+
{
|
|
14
|
+
|
|
15
|
+
private static readonly Dictionary<string, TTAssetBundleRequest> _urlToRequest =
|
|
16
|
+
new Dictionary<string, TTAssetBundleRequest>();
|
|
17
|
+
|
|
18
|
+
public string Url;
|
|
19
|
+
private uint _crc;
|
|
20
|
+
private readonly ulong _offset;
|
|
21
|
+
|
|
22
|
+
public bool IsDone;
|
|
23
|
+
|
|
24
|
+
private AssetBundle _bundle;
|
|
25
|
+
private string _requestId;
|
|
26
|
+
|
|
27
|
+
public delegate void TTAssetBundleCallback(IntPtr idPtr, uint errCode, IntPtr msgPtr);
|
|
28
|
+
|
|
29
|
+
public void Dispose()
|
|
30
|
+
{
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public AssetBundle assetBundle
|
|
35
|
+
{
|
|
36
|
+
get
|
|
37
|
+
{
|
|
38
|
+
if (_bundle == null)
|
|
39
|
+
{
|
|
40
|
+
_bundle = AssetBundle.LoadFromFile(Url);
|
|
41
|
+
TTAssetBundle.bundle2path.Add(_bundle, Url);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return _bundle;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
internal TTAssetBundleRequest(string url, uint crc, ulong offset)
|
|
49
|
+
{
|
|
50
|
+
Url = url;
|
|
51
|
+
_crc = crc;
|
|
52
|
+
_offset = offset;
|
|
53
|
+
|
|
54
|
+
IsDone = false;
|
|
55
|
+
_requestId = url + Random.Range(0.0f, 10000000f);
|
|
56
|
+
_urlToRequest.Add(_requestId, this);
|
|
57
|
+
StarkAbfsFetchBundleFromXHR(url, _requestId, new TTAssetBundleCallback(Callback));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[MonoPInvokeCallback(typeof(TTAssetBundleCallback))]
|
|
61
|
+
public static void Callback(IntPtr idPtr, uint errCode, IntPtr msgPtr)
|
|
62
|
+
{
|
|
63
|
+
string requestId = Marshal.PtrToStringAuto(idPtr);
|
|
64
|
+
_urlToRequest.TryGetValue(requestId, out var request);
|
|
65
|
+
_urlToRequest.Remove(requestId);
|
|
66
|
+
if (errCode == 0U)
|
|
67
|
+
{
|
|
68
|
+
request.IsDone = true;
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
{
|
|
72
|
+
string msg = Marshal.PtrToStringAuto(msgPtr);
|
|
73
|
+
Debug.LogError($"StarkAbfsGetBundleFromXML_{requestId} Error: {msg}");
|
|
74
|
+
throw new Exception(msg);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
[Preserve]
|
|
79
|
+
#if UNITY_WEBGL && !UNITY_EDITOR
|
|
80
|
+
[DllImport("__Internal", EntryPoint = "StarkAbfsFetchBundleFromXHR")]
|
|
81
|
+
private static extern void StarkAbfsFetchBundleFromXHR(string url, string id, TTAssetBundleCallback callback);
|
|
82
|
+
#else
|
|
83
|
+
private static void StarkAbfsFetchBundleFromXHR(string url, string id, TTAssetBundleCallback callback)
|
|
84
|
+
{
|
|
85
|
+
throw new PlatformNotSupportedException();
|
|
86
|
+
}
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
public object Current => null;
|
|
90
|
+
|
|
91
|
+
public bool MoveNext() => !IsDone;
|
|
92
|
+
|
|
93
|
+
public void Reset() => throw new NotImplementedException("Reset Not Implemented");
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#if !UNITY_WEBGL
|
|
2
|
+
using UnityEngine;
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
namespace TTSDK
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
public class UnityCacheStorageStatus
|
|
9
|
+
{
|
|
10
|
+
public long maximumAvailableStorageSpace;
|
|
11
|
+
public long spaceOccupied;
|
|
12
|
+
public long spaceFree;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
public static class UnityCacheCompatibility {
|
|
16
|
+
|
|
17
|
+
public static bool CheckAndSetMaxStorageSpace(long cacheSizeInBytes)
|
|
18
|
+
{
|
|
19
|
+
#if !UNITY_WEBGL
|
|
20
|
+
Cache cache = Caching.currentCacheForWriting;
|
|
21
|
+
if (null != cache && cache.maximumAvailableStorageSpace > cacheSizeInBytes)
|
|
22
|
+
{
|
|
23
|
+
cache.maximumAvailableStorageSpace = cacheSizeInBytes;
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
#endif
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public static UnityCacheStorageStatus GetStorageStatus()
|
|
31
|
+
{
|
|
32
|
+
#if !UNITY_WEBGL
|
|
33
|
+
Cache cache = Caching.currentCacheForWriting;
|
|
34
|
+
if (null != cache)
|
|
35
|
+
{
|
|
36
|
+
return new UnityCacheStorageStatus
|
|
37
|
+
{
|
|
38
|
+
maximumAvailableStorageSpace = cache.maximumAvailableStorageSpace,
|
|
39
|
+
spaceOccupied = cache.spaceOccupied,
|
|
40
|
+
spaceFree = cache.spaceFree
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
#endif
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
using UnityEngine.Networking;
|
|
2
|
+
|
|
3
|
+
namespace TTSDK
|
|
4
|
+
{
|
|
5
|
+
public static class UnityWebRequestCompatibility
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
public static UnityWebRequest PostWwwForm(string host, string data)
|
|
9
|
+
{
|
|
10
|
+
#if UNITY_2022_1_OR_NEWER
|
|
11
|
+
return UnityWebRequest.PostWwwForm(host, data);
|
|
12
|
+
#else
|
|
13
|
+
return UnityWebRequest.Post(host, data);
|
|
14
|
+
#endif
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
using System.Runtime.InteropServices;
|
|
2
|
+
using UnityEngine;
|
|
3
|
+
|
|
4
|
+
namespace TTSDK
|
|
5
|
+
{
|
|
6
|
+
/**
|
|
7
|
+
* 文件存储接口
|
|
8
|
+
* 具体使用说明参考文档:https://bytedance.feishu.cn/docx/JpAMdacnaoyFDdx0fhXcUwL5nAe
|
|
9
|
+
*/
|
|
10
|
+
public abstract class TTFileSystemManager
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
/// 用户数据存储的路径
|
|
14
|
+
/// </summary>
|
|
15
|
+
public const string USER_DATA_PATH = "scfile://user";
|
|
16
|
+
|
|
17
|
+
private const string SC_FILE_SCHEME = "scfile://";
|
|
18
|
+
private const string TT_FILE_SCHEME = "ttfile://";
|
|
19
|
+
|
|
20
|
+
/// <summary>
|
|
21
|
+
/// 将字符串写入文件(同步)
|
|
22
|
+
/// </summary>
|
|
23
|
+
/// <param name="filePath">要写入的文件路径</param>
|
|
24
|
+
/// <param name="data">要写入的文本</param>
|
|
25
|
+
/// <param name="encoding">指定写入文件的字符编码</param>
|
|
26
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
27
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
28
|
+
public abstract string WriteFileSync(string filePath, string data, string encoding = "utf8");
|
|
29
|
+
|
|
30
|
+
/// <summary>
|
|
31
|
+
/// 将二进制写入文件(同步)
|
|
32
|
+
/// </summary>
|
|
33
|
+
/// <param name="filePath">要写入的文件路径</param>
|
|
34
|
+
/// <param name="data">要写入的二进制数据</param>
|
|
35
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
36
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
37
|
+
public abstract string WriteFileSync(string filePath, byte[] data);
|
|
38
|
+
|
|
39
|
+
/// <summary>
|
|
40
|
+
/// 将二进制写入文件(异步)
|
|
41
|
+
/// </summary>
|
|
42
|
+
/// <param name="param"></param>
|
|
43
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
44
|
+
public abstract void WriteFile(WriteFileParam param);
|
|
45
|
+
|
|
46
|
+
/// <summary>
|
|
47
|
+
/// 将字符串写入文件(异步)
|
|
48
|
+
/// </summary>
|
|
49
|
+
/// <param name="param"></param>
|
|
50
|
+
public abstract void WriteFile(WriteFileStringParam param);
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
/// 读取本地文件内容(异步)
|
|
54
|
+
/// </summary>
|
|
55
|
+
/// <param name="param"></param>
|
|
56
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
57
|
+
public abstract void ReadFile(ReadFileParam param);
|
|
58
|
+
|
|
59
|
+
/// <summary>
|
|
60
|
+
/// 从本地文件读取二进制数据数据(同步)
|
|
61
|
+
/// </summary>
|
|
62
|
+
/// <param name="filePath"></param>
|
|
63
|
+
/// <returns>字节数据,读取失败返回null</returns>
|
|
64
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
65
|
+
public abstract byte[] ReadFileSync(string filePath);
|
|
66
|
+
|
|
67
|
+
/// <summary>
|
|
68
|
+
/// 从本地文件读取字符串数据(同步)
|
|
69
|
+
/// </summary>
|
|
70
|
+
/// <param name="filePath">要读取的文件的路径</param>
|
|
71
|
+
/// <param name="encoding">指定读取文件的字符编码, 不能为空</param>
|
|
72
|
+
/// <returns>字符串数据,读取失败返回null</returns>
|
|
73
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
74
|
+
public abstract string ReadFileSync(string filePath, string encoding);
|
|
75
|
+
|
|
76
|
+
/// <summary>
|
|
77
|
+
/// 判断文件/目录是否存在(同步)
|
|
78
|
+
/// </summary>
|
|
79
|
+
/// <param name="path">要判断是否存在的文件/目录路径</param>
|
|
80
|
+
/// <returns>成功返回 true, 失败返回 false</returns>
|
|
81
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
82
|
+
public abstract bool AccessSync(string path);
|
|
83
|
+
|
|
84
|
+
/// <summary>
|
|
85
|
+
/// 判断文件/目录是否存在(异步)
|
|
86
|
+
/// </summary>
|
|
87
|
+
/// <param name="param"></param>
|
|
88
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
89
|
+
public abstract void Access(AccessParam param);
|
|
90
|
+
|
|
91
|
+
/// <summary>
|
|
92
|
+
/// 复制文件(同步)
|
|
93
|
+
/// </summary>
|
|
94
|
+
/// <param name="srcPath">源文件路径</param>
|
|
95
|
+
/// <param name="destPath">目标文件路径</param>
|
|
96
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
97
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
98
|
+
public abstract string CopyFileSync(string srcPath, string destPath);
|
|
99
|
+
|
|
100
|
+
/// <summary>
|
|
101
|
+
/// 复制文件(异步)
|
|
102
|
+
/// </summary>
|
|
103
|
+
/// <param name="param"></param>
|
|
104
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
105
|
+
public abstract void CopyFile(CopyFileParam param);
|
|
106
|
+
|
|
107
|
+
/// <summary>
|
|
108
|
+
/// 重命名文件(异步)
|
|
109
|
+
/// </summary>
|
|
110
|
+
/// <param name="param"></param>
|
|
111
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
112
|
+
public abstract void RenameFile(RenameFileParam param);
|
|
113
|
+
|
|
114
|
+
/// <summary>
|
|
115
|
+
/// 重命名文件(同步)
|
|
116
|
+
/// </summary>
|
|
117
|
+
/// <param name="srcPath">源文件路径</param>
|
|
118
|
+
/// <param name="destPath">目标文件路径</param>
|
|
119
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
120
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
121
|
+
public abstract string RenameFileSync(string srcPath, string destPath);
|
|
122
|
+
|
|
123
|
+
/// <summary>
|
|
124
|
+
/// 删除文件(同步)
|
|
125
|
+
/// </summary>
|
|
126
|
+
/// <param name="filePath">源文件路径,支持本地路径</param>
|
|
127
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
128
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
129
|
+
public abstract string UnlinkSync(string filePath);
|
|
130
|
+
|
|
131
|
+
/// <summary>
|
|
132
|
+
/// 删除文件(异步)
|
|
133
|
+
/// </summary>
|
|
134
|
+
/// <param name="param"></param>
|
|
135
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
136
|
+
public abstract void Unlink(UnlinkParam param);
|
|
137
|
+
|
|
138
|
+
/// <summary>
|
|
139
|
+
/// 创建目录(异步)
|
|
140
|
+
/// </summary>
|
|
141
|
+
/// <param name="param"></param>
|
|
142
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
143
|
+
public abstract void Mkdir(MkdirParam param);
|
|
144
|
+
|
|
145
|
+
/// <summary>
|
|
146
|
+
/// 创建目录(同步)
|
|
147
|
+
/// </summary>
|
|
148
|
+
/// <param name="dirPath">创建的目录路径</param>
|
|
149
|
+
/// <param name="recursive">是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。如 dirPath 为 a/b/c/d 且 recursive 为 true,将创建 a 目录,再在 a 目录下创建 b 目录,以此类推直至创建 a/b/c 目录下的 d 目录。</param>
|
|
150
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
151
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
152
|
+
public abstract string MkdirSync(string dirPath, bool recursive = false);
|
|
153
|
+
|
|
154
|
+
/// <summary>
|
|
155
|
+
/// 删除目录(异步)
|
|
156
|
+
/// </summary>
|
|
157
|
+
/// <param name="param"></param>
|
|
158
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
159
|
+
public abstract void Rmdir(RmdirParam param);
|
|
160
|
+
|
|
161
|
+
/// <summary>
|
|
162
|
+
/// 删除目录(同步)
|
|
163
|
+
/// </summary>
|
|
164
|
+
/// <param name="dirPath">创建的目录路径</param>
|
|
165
|
+
/// <param name="recursive">是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件 。</param>
|
|
166
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
167
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
168
|
+
public abstract string RmdirSync(string dirPath, bool recursive = false);
|
|
169
|
+
|
|
170
|
+
/// <summary>
|
|
171
|
+
/// 读取文件描述信息(同步)
|
|
172
|
+
/// </summary>
|
|
173
|
+
/// <param name="path">文件/目录路径</param>
|
|
174
|
+
/// <param name="recursive">是否递归获取目录下的每个文件的 Stat 信息 </param>
|
|
175
|
+
/// <param name="throwException">是否抛出错误信息,如果抛出错误信息,当文件不存在时则会抛出异常,错误信息从异常中获取。</param>
|
|
176
|
+
/// <returns>返回文件信息,如果访问失败则返回null</returns>
|
|
177
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
178
|
+
public abstract TTStatInfo StatSync(string path, bool throwException = false);
|
|
179
|
+
|
|
180
|
+
/// <summary>
|
|
181
|
+
/// 读取文件描述信息(异步)
|
|
182
|
+
/// </summary>
|
|
183
|
+
/// <param name="param"></param>
|
|
184
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
185
|
+
public abstract void Stat(StatParam param);
|
|
186
|
+
|
|
187
|
+
/// <summary>
|
|
188
|
+
/// 获取保存的用户目录文件列表(仅WebGL平台可用)
|
|
189
|
+
/// </summary>
|
|
190
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
191
|
+
public abstract void GetSavedFileList(GetSavedFileListParam param);
|
|
192
|
+
|
|
193
|
+
/// <summary>
|
|
194
|
+
/// 根据url链接获取本地缓存文件路径(仅WebGL平台可用)
|
|
195
|
+
/// </summary>
|
|
196
|
+
/// <param name="url">输入文件下载链接url</param>
|
|
197
|
+
/// <returns>返回本地缓存文件路径,以scfile://user开头的路径,可以直接用这个路径访问该文件</returns>
|
|
198
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
199
|
+
public abstract string GetLocalCachedPathForUrl(string url);
|
|
200
|
+
|
|
201
|
+
/// <summary>
|
|
202
|
+
/// 判断该url是否有本地缓存文件(仅WebGL平台可用)
|
|
203
|
+
/// </summary>
|
|
204
|
+
/// <param name="url">输入文件下载链接url</param>
|
|
205
|
+
/// <returns>如果存在缓存文件则返回true,不存在缓存文件则返回false</returns>
|
|
206
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", IsSupportWebGL = true)]
|
|
207
|
+
public abstract bool IsUrlCached(string url);
|
|
208
|
+
|
|
209
|
+
/// <summary>
|
|
210
|
+
/// 在文件结尾追加内容,文件不存在时会新。(同步)
|
|
211
|
+
/// </summary>
|
|
212
|
+
/// <param name="filePath">要写入的文件路径</param>
|
|
213
|
+
/// <param name="data">要写入的文本</param>
|
|
214
|
+
/// <param name="encoding">指定写入文件的字符编码</param>
|
|
215
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
216
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "appendFileSync")]
|
|
217
|
+
public abstract string AppendFileSync(string filePath, string data, string encoding = "utf8");
|
|
218
|
+
|
|
219
|
+
/// <summary>
|
|
220
|
+
/// 在文件结尾追加内容,文件不存在时会新。(同步)
|
|
221
|
+
/// </summary>
|
|
222
|
+
/// <param name="filePath">要写入的文件路径</param>
|
|
223
|
+
/// <param name="data">要写入的二进制数据</param>
|
|
224
|
+
/// <returns>成功返回空字符串,失败返回错误信息</returns>
|
|
225
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "appendFileSync")]
|
|
226
|
+
public abstract string AppendFileSync(string filePath, byte[] data);
|
|
227
|
+
|
|
228
|
+
/// <summary>
|
|
229
|
+
/// 将二进制追加写入文件(异步)
|
|
230
|
+
/// </summary>
|
|
231
|
+
/// <param name="param"></param>
|
|
232
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "appendFile")]
|
|
233
|
+
public abstract void AppendFile(AppendFileParam param);
|
|
234
|
+
|
|
235
|
+
/// <summary>
|
|
236
|
+
/// 将字符串追加写入文件(异步)
|
|
237
|
+
/// </summary>
|
|
238
|
+
/// <param name="param"></param>
|
|
239
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "appendFile")]
|
|
240
|
+
public abstract void AppendFile(AppendFileStringParam param);
|
|
241
|
+
|
|
242
|
+
/// <summary>
|
|
243
|
+
/// 读取目录内文件列表。
|
|
244
|
+
/// </summary>
|
|
245
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "readDir")]
|
|
246
|
+
public abstract void ReadDir(ReadDirParam param);
|
|
247
|
+
|
|
248
|
+
/// <summary>
|
|
249
|
+
/// 读取目录内文件列表。(同步)
|
|
250
|
+
/// </summary>
|
|
251
|
+
/// <param name="dirPath"></param>
|
|
252
|
+
/// <returns></returns>
|
|
253
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "readDirSync")]
|
|
254
|
+
public abstract string[] ReadDirSync(string dirPath);
|
|
255
|
+
|
|
256
|
+
/// <summary>
|
|
257
|
+
/// 对文件内容进行截断操作
|
|
258
|
+
/// </summary>
|
|
259
|
+
/// <param name="param"></param>
|
|
260
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "truncate")]
|
|
261
|
+
public abstract void Truncate(TruncateParam param);
|
|
262
|
+
/// <summary>
|
|
263
|
+
/// 对文件内容进行截断操作(同步)
|
|
264
|
+
/// </summary>
|
|
265
|
+
/// <param name="filePath"></param>
|
|
266
|
+
/// <param name="length"></param>
|
|
267
|
+
/// <returns></returns>
|
|
268
|
+
[TTVersion(MinTTContainerAndroidVersion = "1.0", WebGLMethod = "truncate")]
|
|
269
|
+
public abstract string TruncateSync(string filePath, int length);
|
|
270
|
+
|
|
271
|
+
#region 流式读写
|
|
272
|
+
/// <summary>
|
|
273
|
+
/// 打开一个文件
|
|
274
|
+
/// </summary>
|
|
275
|
+
/// <param name="filePath"></param>
|
|
276
|
+
/// <returns></returns>
|
|
277
|
+
public abstract void Open(OpenParam param);
|
|
278
|
+
|
|
279
|
+
/// <summary>
|
|
280
|
+
/// 同步打开一个文件
|
|
281
|
+
/// </summary>
|
|
282
|
+
/// <param name="filePath"></param>
|
|
283
|
+
/// <returns></returns>
|
|
284
|
+
public abstract string OpenSync(OpenSyncParam param);
|
|
285
|
+
|
|
286
|
+
/// <summary>
|
|
287
|
+
/// 关闭一个文件
|
|
288
|
+
/// </summary>
|
|
289
|
+
/// <param name="fd"></param>
|
|
290
|
+
/// <returns></returns>
|
|
291
|
+
public abstract void Close(CloseParam param);
|
|
292
|
+
|
|
293
|
+
/// <summary>
|
|
294
|
+
/// 同步关闭一个文件
|
|
295
|
+
/// </summary>
|
|
296
|
+
/// <param name="fd"></param>
|
|
297
|
+
/// <returns></returns>
|
|
298
|
+
public abstract void CloseSync(CloseSyncParam param);
|
|
299
|
+
/// <summary>
|
|
300
|
+
/// 写文件
|
|
301
|
+
/// </summary>
|
|
302
|
+
/// <param name="param"></param>
|
|
303
|
+
/// <returns></returns>
|
|
304
|
+
public abstract void Write(WriteBinParam param);
|
|
305
|
+
/// <summary>
|
|
306
|
+
/// 写文件
|
|
307
|
+
/// </summary>
|
|
308
|
+
/// <param name="param"></param>
|
|
309
|
+
/// <returns></returns>
|
|
310
|
+
public abstract void Write(WriteStringParam param);
|
|
311
|
+
/// <summary>
|
|
312
|
+
/// 同步写文件
|
|
313
|
+
/// </summary>
|
|
314
|
+
/// <param name="param"></param>
|
|
315
|
+
/// <returns></returns>
|
|
316
|
+
public abstract WriteResult WriteSync(WriteBinSyncParam param);
|
|
317
|
+
/// <summary>
|
|
318
|
+
/// 同步写文件
|
|
319
|
+
/// </summary>
|
|
320
|
+
/// <param name="param"></param>
|
|
321
|
+
/// <returns></returns>
|
|
322
|
+
public abstract WriteResult WriteSync(WriteStringSyncParam param);
|
|
323
|
+
/// <summary>
|
|
324
|
+
/// 读文件
|
|
325
|
+
/// </summary>
|
|
326
|
+
/// <param name="param"></param>
|
|
327
|
+
/// <returns></returns>
|
|
328
|
+
public abstract void Read(ReadParam param);
|
|
329
|
+
/// <summary>
|
|
330
|
+
/// 同步读文件
|
|
331
|
+
/// </summary>
|
|
332
|
+
/// <param name="param"></param>
|
|
333
|
+
/// <returns></returns>
|
|
334
|
+
public abstract ReadResult ReadSync(ReadSyncParam param);
|
|
335
|
+
/// <summary>
|
|
336
|
+
/// 读压缩文件
|
|
337
|
+
/// </summary>
|
|
338
|
+
/// <param name="param"></param>
|
|
339
|
+
/// <returns></returns>
|
|
340
|
+
public abstract void ReadCompressedFile(ReadCompressedFileParam param);
|
|
341
|
+
/// <summary>
|
|
342
|
+
/// 同步读压缩文件
|
|
343
|
+
/// </summary>
|
|
344
|
+
/// <param name="param"></param>
|
|
345
|
+
/// <returns></returns>
|
|
346
|
+
public abstract byte[] ReadCompressedFileSync(ReadCompressedFileSyncParam param);
|
|
347
|
+
/// <summary>
|
|
348
|
+
/// 获取文件状态
|
|
349
|
+
/// </summary>
|
|
350
|
+
/// <param name="param"></param>
|
|
351
|
+
/// <returns></returns>
|
|
352
|
+
public abstract void Fstat(FstatParam param);
|
|
353
|
+
/// <summary>
|
|
354
|
+
/// 同步获取文件状态
|
|
355
|
+
/// </summary>
|
|
356
|
+
/// <param name="param"></param>
|
|
357
|
+
/// <returns></returns>
|
|
358
|
+
public abstract TTStatInfo FstatSync(FstatSyncParam param);
|
|
359
|
+
/// <summary>
|
|
360
|
+
/// 截断文件
|
|
361
|
+
/// </summary>
|
|
362
|
+
/// <param name="param"></param>
|
|
363
|
+
/// <returns></returns>
|
|
364
|
+
public abstract void Ftruncate(FtruncateParam param);
|
|
365
|
+
/// <summary>
|
|
366
|
+
/// 同步截断文件
|
|
367
|
+
/// </summary>
|
|
368
|
+
/// <param name="param"></param>
|
|
369
|
+
/// <returns></returns>
|
|
370
|
+
public abstract void FtruncateSync(FtruncateSyncParam param);
|
|
371
|
+
|
|
372
|
+
#endregion
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
public static string FixFilePath(string filePath)
|
|
376
|
+
{
|
|
377
|
+
|
|
378
|
+
if (filePath.StartsWith(SC_FILE_SCHEME) || filePath.StartsWith(TT_FILE_SCHEME))
|
|
379
|
+
{
|
|
380
|
+
return filePath;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
if (filePath.StartsWith(Application.persistentDataPath))
|
|
384
|
+
{
|
|
385
|
+
filePath = filePath.Replace(Application.persistentDataPath, USER_DATA_PATH);
|
|
386
|
+
}
|
|
387
|
+
else
|
|
388
|
+
{
|
|
389
|
+
if (filePath.StartsWith("/"))
|
|
390
|
+
{
|
|
391
|
+
filePath = filePath.Substring(1);
|
|
392
|
+
}
|
|
393
|
+
if (!TTSDKType.IsMixEngine())
|
|
394
|
+
{
|
|
395
|
+
filePath = $"{USER_DATA_PATH}/{filePath}";
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return filePath;
|
|
400
|
+
}
|
|
401
|
+
private static int _isDataMigrated = -1;
|
|
402
|
+
public static void MigratingData()
|
|
403
|
+
{
|
|
404
|
+
if (!IsDataMigrated())
|
|
405
|
+
{
|
|
406
|
+
StarkMigratingData();
|
|
407
|
+
_isDataMigrated = 1;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
public static bool CanUseLocalStorage()
|
|
412
|
+
{
|
|
413
|
+
return StarkCanUseLocalStorage();
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
#if UNITY_WEBGL && !UNITY_EDITOR
|
|
417
|
+
[DllImport("__Internal")]
|
|
418
|
+
private static extern void StarkMigratingData();
|
|
419
|
+
#else
|
|
420
|
+
private static void StarkMigratingData()
|
|
421
|
+
{
|
|
422
|
+
}
|
|
423
|
+
#endif
|
|
424
|
+
|
|
425
|
+
#if UNITY_WEBGL && !UNITY_EDITOR
|
|
426
|
+
[DllImport("__Internal")]
|
|
427
|
+
private static extern bool StarkCanUseLocalStorage();
|
|
428
|
+
#else
|
|
429
|
+
private static bool StarkCanUseLocalStorage()
|
|
430
|
+
{
|
|
431
|
+
return false;
|
|
432
|
+
}
|
|
433
|
+
#endif
|
|
434
|
+
|
|
435
|
+
#if UNITY_WEBGL && !UNITY_EDITOR
|
|
436
|
+
[DllImport("__Internal")]
|
|
437
|
+
private static extern bool StarkIsDataMigrated();
|
|
438
|
+
#else
|
|
439
|
+
private static bool StarkIsDataMigrated()
|
|
440
|
+
{
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
#endif
|
|
444
|
+
public static bool IsDataMigrated()
|
|
445
|
+
{
|
|
446
|
+
if (_isDataMigrated == 1)
|
|
447
|
+
{
|
|
448
|
+
return true;
|
|
449
|
+
}
|
|
450
|
+
else if (_isDataMigrated == 0)
|
|
451
|
+
{
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
var migrated = StarkIsDataMigrated();
|
|
456
|
+
_isDataMigrated = migrated ? 1 : 0;
|
|
457
|
+
return migrated;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|