Compare commits

...

5 Commits

Author SHA1 Message Date
何冠峰
06a50a049e add mini game sample 2025-06-13 18:31:05 +08:00
何冠峰
6f049e2427 add mini game sample
小游戏扩展库独立
2025-06-13 18:19:35 +08:00
何冠峰
01c08a46ab fix #564 2025-06-13 17:39:30 +08:00
何冠峰
31dc5b494d fix #569 2025-06-13 17:25:13 +08:00
何冠峰
18e74e906e fix #551 2025-06-13 17:18:38 +08:00
65 changed files with 67 additions and 12 deletions

View File

@@ -70,7 +70,11 @@ namespace YooAsset.Editor
foreach (var cacheInfoPair in _database) foreach (var cacheInfoPair in _database)
{ {
var assetPath = cacheInfoPair.Key; var assetPath = cacheInfoPair.Key;
#if UNITY_2021_3_OR_NEWER
var assetGUID = AssetDatabase.AssetPathToGUID(assetPath, AssetPathToGUIDOptions.OnlyExistingAssets); var assetGUID = AssetDatabase.AssetPathToGUID(assetPath, AssetPathToGUIDOptions.OnlyExistingAssets);
#else
var assetGUID = AssetDatabase.AssetPathToGUID(assetPath);
#endif
if (string.IsNullOrEmpty(assetGUID)) if (string.IsNullOrEmpty(assetGUID))
{ {
removeList.Add(assetPath); removeList.Add(assetPath);

View File

@@ -5,6 +5,7 @@
[assembly: InternalsVisibleTo("YooAsset.Test.Editor")] [assembly: InternalsVisibleTo("YooAsset.Test.Editor")]
// 外部友元 // 外部友元
[assembly: InternalsVisibleTo("YooAsset.MiniGame")]
[assembly: InternalsVisibleTo("YooAsset.RuntimeExtension")] [assembly: InternalsVisibleTo("YooAsset.RuntimeExtension")]
[assembly: InternalsVisibleTo("YooAsset.EditorExtension")] [assembly: InternalsVisibleTo("YooAsset.EditorExtension")]
[assembly: InternalsVisibleTo("Assembly-CSharp-Editor")] [assembly: InternalsVisibleTo("Assembly-CSharp-Editor")]

View File

@@ -69,6 +69,8 @@ namespace YooAsset
url = new System.Uri(path).ToString(); url = new System.Uri(path).ToString();
#elif UNITY_STANDALONE || UNITY_WSA #elif UNITY_STANDALONE || UNITY_WSA
url = StringUtility.Format("file:///{0}", path); url = StringUtility.Format("file:///{0}", path);
#elif UNITY_TVOS
url = StringUtility.Format("file:///{0}", path);
#else #else
throw new System.NotImplementedException(); throw new System.NotImplementedException();
#endif #endif

View File

@@ -2,9 +2,7 @@
"name": "YooAsset.RuntimeExtension", "name": "YooAsset.RuntimeExtension",
"rootNamespace": "", "rootNamespace": "",
"references": [ "references": [
"GUID:e34a5702dd353724aa315fb8011f08c3", "GUID:e34a5702dd353724aa315fb8011f08c3"
"GUID:5efd170ecd8084500bed5692932fe14e",
"GUID:bb21d6197862c4c3e863390dec9859a7"
], ],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 5280dfac6a481ee429c769ba5688c9d2 guid: 2bbcb90032364234abe49c81b95714e1
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b127fedb48547954b9c54084b6a32a65
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -11,14 +11,16 @@ internal class TTFSRequestPackageVersionOperation : FSRequestPackageVersionOpera
} }
private readonly TiktokFileSystem _fileSystem; private readonly TiktokFileSystem _fileSystem;
private readonly bool _appendTimeTicks;
private readonly int _timeout; private readonly int _timeout;
private RequestTiktokPackageVersionOperation _requestPackageVersionOp; private RequestTiktokPackageVersionOperation _requestPackageVersionOp;
private ESteps _steps = ESteps.None; private ESteps _steps = ESteps.None;
internal TTFSRequestPackageVersionOperation(TiktokFileSystem fileSystem, int timeout) internal TTFSRequestPackageVersionOperation(TiktokFileSystem fileSystem, bool appendTimeTicks, int timeout)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
_appendTimeTicks = appendTimeTicks;
_timeout = timeout; _timeout = timeout;
} }
internal override void InternalStart() internal override void InternalStart()
@@ -34,7 +36,7 @@ internal class TTFSRequestPackageVersionOperation : FSRequestPackageVersionOpera
{ {
if (_requestPackageVersionOp == null) if (_requestPackageVersionOp == null)
{ {
_requestPackageVersionOp = new RequestTiktokPackageVersionOperation(_fileSystem, _timeout); _requestPackageVersionOp = new RequestTiktokPackageVersionOperation(_fileSystem, _appendTimeTicks, _timeout);
_requestPackageVersionOp.StartOperation(); _requestPackageVersionOp.StartOperation();
AddChildOperation(_requestPackageVersionOp); AddChildOperation(_requestPackageVersionOp);
} }

View File

@@ -11,6 +11,7 @@ internal class RequestTiktokPackageVersionOperation : AsyncOperationBase
} }
private readonly TiktokFileSystem _fileSystem; private readonly TiktokFileSystem _fileSystem;
private readonly bool _appendTimeTicks;
private readonly int _timeout; private readonly int _timeout;
private UnityWebTextRequestOperation _webTextRequestOp; private UnityWebTextRequestOperation _webTextRequestOp;
private int _requestCount = 0; private int _requestCount = 0;
@@ -21,10 +22,11 @@ internal class RequestTiktokPackageVersionOperation : AsyncOperationBase
/// </summary> /// </summary>
public string PackageVersion { private set; get; } public string PackageVersion { private set; get; }
public RequestTiktokPackageVersionOperation(TiktokFileSystem fileSystem, int timeout) public RequestTiktokPackageVersionOperation(TiktokFileSystem fileSystem, bool appendTimeTicks, int timeout)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
_appendTimeTicks = appendTimeTicks;
_timeout = timeout; _timeout = timeout;
} }
internal override void InternalStart() internal override void InternalStart()
@@ -80,11 +82,19 @@ internal class RequestTiktokPackageVersionOperation : AsyncOperationBase
private string GetRequestURL(string fileName) private string GetRequestURL(string fileName)
{ {
string url;
// 轮流返回请求地址 // 轮流返回请求地址
if (_requestCount % 2 == 0) if (_requestCount % 2 == 0)
return _fileSystem.RemoteServices.GetRemoteMainURL(fileName); url = _fileSystem.RemoteServices.GetRemoteMainURL(fileName);
else else
return _fileSystem.RemoteServices.GetRemoteFallbackURL(fileName); url = _fileSystem.RemoteServices.GetRemoteFallbackURL(fileName);
// 在URL末尾添加时间戳
if (_appendTimeTicks)
return $"{url}?{System.DateTime.UtcNow.Ticks}";
else
return url;
} }
} }
#endif #endif

View File

@@ -121,7 +121,7 @@ internal class TiktokFileSystem : IFileSystem
} }
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout) public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{ {
var operation = new TTFSRequestPackageVersionOperation(this, timeout); var operation = new TTFSRequestPackageVersionOperation(this, appendTimeTicks, timeout);
return operation; return operation;
} }
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options) public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, ClearCacheFilesOptions options)

View File

@@ -11,8 +11,8 @@ internal class RequestWechatPackageVersionOperation : AsyncOperationBase
} }
private readonly WechatFileSystem _fileSystem; private readonly WechatFileSystem _fileSystem;
private readonly int _timeout;
private readonly bool _appendTimeTicks; private readonly bool _appendTimeTicks;
private readonly int _timeout;
private UnityWebTextRequestOperation _webTextRequestOp; private UnityWebTextRequestOperation _webTextRequestOp;
private int _requestCount = 0; private int _requestCount = 0;
private ESteps _steps = ESteps.None; private ESteps _steps = ESteps.None;

View File

@@ -0,0 +1,18 @@
{
"name": "YooAsset.MiniGame",
"rootNamespace": "",
"references": [
"GUID:e34a5702dd353724aa315fb8011f08c3",
"GUID:5efd170ecd8084500bed5692932fe14e",
"GUID:bb21d6197862c4c3e863390dec9859a7"
],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 839b8c2cb327b8a43afe86fd33563571
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -14,6 +14,11 @@
"description": "YooAsset runtime sample, Include resource update, resource download, resource loading and other functions.", "description": "YooAsset runtime sample, Include resource update, resource download, resource loading and other functions.",
"path": "Samples~/Space Shooter" "path": "Samples~/Space Shooter"
}, },
{
"displayName": "Mini Game",
"description": "YooAsset extension file system, Include wechat file system, tiktok file system.",
"path": "Samples~/Mini Game"
},
{ {
"displayName": "Extension Sample", "displayName": "Extension Sample",
"description": "YooAsset extension sample, Include patcher combine, patcher compare, patcher importer and other functions.", "description": "YooAsset extension sample, Include patcher combine, patcher compare, patcher importer and other functions.",