This commit is contained in:
2026-10-09 22:06:36 +08:00
parent 3a985587bf
commit 1f4c19904f
25 changed files with 715 additions and 371 deletions
@@ -0,0 +1,115 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!687078895 &4343727234628468602
SpriteAtlas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PaoTaiSprite
m_EditorData:
serializedVersion: 2
textureSettings:
serializedVersion: 2
anisoLevel: 1
compressionQuality: 50
maxTextureSize: 2048
textureCompression: 0
filterMode: 1
generateMipMaps: 0
readable: 0
crunchedCompression: 0
sRGB: 1
platformSettings:
- serializedVersion: 3
m_BuildTarget: Android
m_MaxTextureSize: 1024
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
m_BuildTarget: iPhone
m_MaxTextureSize: 1024
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
packingSettings:
serializedVersion: 2
padding: 4
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 1
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1
packables:
- {fileID: 2800000, guid: 5bc7ee217f99ebd459216f2c08311bbc, type: 3}
- {fileID: 2800000, guid: f0a59ae3f69ff7b4994056c890bce8e2, type: 3}
- {fileID: 2800000, guid: 8e864412df60c9648b8ab2c6837dc2c6, type: 3}
- {fileID: 2800000, guid: fbe77e7b89992564fa949297c8e45388, type: 3}
- {fileID: 2800000, guid: 0233946f0c4584846aa517b3c3fd44c3, type: 3}
- {fileID: 2800000, guid: 2890b76ba375ba948a73f1058220edaa, type: 3}
- {fileID: 2800000, guid: d973011aa0edb0d498af4cd25a4321e9, type: 3}
- {fileID: 2800000, guid: d9987b80bdec5db4cb5fb7a628569d63, type: 3}
- {fileID: 2800000, guid: db1e75ab94596fe438c7ccce9e927100, type: 3}
- {fileID: 2800000, guid: e5c795ee32b1c6f4da546aa5b6f112ec, type: 3}
- {fileID: 2800000, guid: d93de63344587384fb14f3ff45381f28, type: 3}
- {fileID: 2800000, guid: 879078866c383ec418496cebbf48d63d, type: 3}
- {fileID: 2800000, guid: c38b5ecdda8cb924bb65905500834cc8, type: 3}
- {fileID: 2800000, guid: ca50562a6437ff645ab9babfbc5ff62b, type: 3}
- {fileID: 2800000, guid: 46a32cd561da5b443b80feaafb4e4f06, type: 3}
- {fileID: 2800000, guid: 63d3cb139a0c40043aab063639266e72, type: 3}
- {fileID: 2800000, guid: 9af3561f85630aa4b8280cee66eeb0a6, type: 3}
- {fileID: 2800000, guid: 098d43abfc1006e44acbd9822deb09bb, type: 3}
- {fileID: 2800000, guid: 270274fc851bfcd4b83a3a48cfd58924, type: 3}
- {fileID: 2800000, guid: aa20d1ffa138eb74ebbb2666d215397c, type: 3}
- {fileID: 2800000, guid: 2fef7572fe9392d48b4fa8040029859c, type: 3}
- {fileID: 2800000, guid: f9c72cbb6d886e54eab455352d067697, type: 3}
- {fileID: 2800000, guid: b9e3729cca6ffcb4cb6d4fab51dd7eea, type: 3}
- {fileID: 2800000, guid: 82dedb83fc04a5c45b3bd01ed2d6d64a, type: 3}
- {fileID: 2800000, guid: 923621881011f3b4eae7c836e048afc9, type: 3}
- {fileID: 2800000, guid: 9f2fe4d8325b1c54489e87ff0b00f962, type: 3}
- {fileID: 2800000, guid: 598795f8ee8efe945b21525d42cecc14, type: 3}
- {fileID: 2800000, guid: 58d6c583854d4a94bb0aaf4cf305072b, type: 3}
- {fileID: 2800000, guid: f273626ec5b802c448a2b5331af8a980, type: 3}
- {fileID: 2800000, guid: 8dc0814926948af45ac390a6a1e36613, type: 3}
- {fileID: 2800000, guid: 91975cae1b7b29b46ad3ccab45f9efad, type: 3}
- {fileID: 2800000, guid: 894fce34a8f961c4385fa03e267e6009, type: 3}
- {fileID: 2800000, guid: 16c009b483e78364ca859c3be882bc42, type: 3}
- {fileID: 2800000, guid: 15ed386cee52ebc439d2290ba9c612da, type: 3}
- {fileID: 2800000, guid: 64508e66cdd421e42b0422d7ee49ed1c, type: 3}
- {fileID: 2800000, guid: 72196431bdb830542be0fb94f40011ae, type: 3}
- {fileID: 2800000, guid: 5bec01646b74aec4895fbd83494ed19f, type: 3}
- {fileID: 2800000, guid: f26a5b78050def843a39dd018a06768a, type: 3}
- {fileID: 2800000, guid: b3a4393229be999448ca7aa65d93811b, type: 3}
- {fileID: 2800000, guid: 799389f1fc628394cb8d5030967d2535, type: 3}
- {fileID: 2800000, guid: 7155c77aef0a7aa4b9aee91968db0c60, type: 3}
- {fileID: 2800000, guid: c8f17a53c456a094c925ed6b5d0c5fc3, type: 3}
- {fileID: 2800000, guid: ae29fff35afc8ab4bb5afbe82d009920, type: 3}
- {fileID: 2800000, guid: 756d775cf03c4fb4f8d7cb3654fc79e7, type: 3}
- {fileID: 2800000, guid: e82167568bd20264a8d958000f831d5b, type: 3}
bindAsDefault: 1
isAtlasV2: 0
cachedData: {fileID: 0}
packedSpriteRenderDataKeys: []
m_MasterAtlas: {fileID: 0}
m_PackedSprites: []
m_PackedSpriteNamesToIndex: []
m_RenderDataMap: {}
m_Tag: PaoTaiSprite
m_IsVariant: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0508b432151cafb488105a9c157dad8d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4343727234628468602
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,76 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!687078895 &4343727234628468602
SpriteAtlas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ZhanShenSprite
m_EditorData:
serializedVersion: 2
textureSettings:
serializedVersion: 2
anisoLevel: 1
compressionQuality: 50
maxTextureSize: 2048
textureCompression: 0
filterMode: 1
generateMipMaps: 0
readable: 0
crunchedCompression: 0
sRGB: 1
platformSettings:
- serializedVersion: 3
m_BuildTarget: Android
m_MaxTextureSize: 2048
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
m_BuildTarget: iPhone
m_MaxTextureSize: 2048
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
packingSettings:
serializedVersion: 2
padding: 4
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 1
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1
packables:
- {fileID: 2800000, guid: 7567a70f6ccea3b45b705973b24c0832, type: 3}
- {fileID: 2800000, guid: 71c9749eb6ba3fc47bb2edca35a9a31b, type: 3}
- {fileID: 2800000, guid: 16ab7a0b63cd4634da7050e12dc6b53e, type: 3}
- {fileID: 2800000, guid: 11856430d23b062489300a32ed378b37, type: 3}
- {fileID: 2800000, guid: e3465109cd9a7dc4ab52c0c25127c927, type: 3}
- {fileID: 2800000, guid: f0277d5948835d94bae3af07480375d6, type: 3}
bindAsDefault: 1
isAtlasV2: 0
cachedData: {fileID: 0}
packedSpriteRenderDataKeys: []
m_MasterAtlas: {fileID: 0}
m_PackedSprites: []
m_PackedSpriteNamesToIndex: []
m_RenderDataMap: {}
m_Tag: ZhanLing 1
m_IsVariant: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 72008a1238b2b5f48b76ec9f8bb16892
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4343727234628468602
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,116 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!687078895 &4343727234628468602
SpriteAtlas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: chibangSprite
m_EditorData:
serializedVersion: 2
textureSettings:
serializedVersion: 2
anisoLevel: 1
compressionQuality: 50
maxTextureSize: 2048
textureCompression: 0
filterMode: 1
generateMipMaps: 0
readable: 0
crunchedCompression: 0
sRGB: 1
platformSettings:
- serializedVersion: 3
m_BuildTarget: Android
m_MaxTextureSize: 1024
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
m_BuildTarget: iPhone
m_MaxTextureSize: 1024
m_ResizeAlgorithm: 0
m_TextureFormat: 50
m_TextureCompression: 1
m_CompressionQuality: 50
m_CrunchedCompression: 0
m_AllowsAlphaSplitting: 0
m_Overridden: 1
m_IgnorePlatformSupport: 0
m_AndroidETC2FallbackOverride: 0
m_ForceMaximumCompressionQuality_BC6H_BC7: 0
packingSettings:
serializedVersion: 2
padding: 4
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 1
enableTightPacking: 1
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1
packables:
- {fileID: 2800000, guid: 863c088e99429f344869e04b240b23d3, type: 3}
- {fileID: 2800000, guid: 9a9db9608a2c5c643bb11a5b81643a1e, type: 3}
- {fileID: 2800000, guid: 43503eff704b97d41ac25c28a3e88881, type: 3}
- {fileID: 2800000, guid: 3d6a02b558c7d1649bc126514a9e65f8, type: 3}
- {fileID: 2800000, guid: 03de765eedf0f1247887cf2e9a4daf35, type: 3}
- {fileID: 2800000, guid: ee5817ea14648ae42be707fe28b60b5c, type: 3}
- {fileID: 2800000, guid: a679ef26467ed774d8a9ba9eebfd4036, type: 3}
- {fileID: 2800000, guid: 8ea133904ecd05e47a71995fa7efcdc8, type: 3}
- {fileID: 2800000, guid: 59ff990509b91d742a1c5942343c87c3, type: 3}
- {fileID: 2800000, guid: 8b968e74f973daf4798f855ab146786b, type: 3}
- {fileID: 2800000, guid: e0f7145448cd3ec42a5d0843cc075684, type: 3}
- {fileID: 2800000, guid: e93f4ba58a94580478170c21710a5818, type: 3}
- {fileID: 2800000, guid: 63dadb73d8560bd4f928125809742234, type: 3}
- {fileID: 2800000, guid: 348d8e5f8160ffd47937310c7ead66bb, type: 3}
- {fileID: 2800000, guid: 2a06ddc2b6df9454b9b5c8d39117a75b, type: 3}
- {fileID: 2800000, guid: f3c68cecf1b289b46a99a3687cd02fed, type: 3}
- {fileID: 2800000, guid: 7c3f4b08bdbaf2540b7baf15c749dd8d, type: 3}
- {fileID: 2800000, guid: 7c484709abee44345944dc68126b711c, type: 3}
- {fileID: 2800000, guid: b0eb338d047310243b4dad1c593386f4, type: 3}
- {fileID: 2800000, guid: 5b04fff8d2b56b34981172ccdce49f3b, type: 3}
- {fileID: 2800000, guid: 46867c8c51cf56640b5a0337c9777036, type: 3}
- {fileID: 2800000, guid: 880e680de116b4d4d8fac3a31f99f985, type: 3}
- {fileID: 2800000, guid: 26d0bee55e9a6054f828b26b76f5c5ef, type: 3}
- {fileID: 2800000, guid: e165363b79759074b9cdb3a253341704, type: 3}
- {fileID: 2800000, guid: 627cf4a5663098a40ba348946f68baaf, type: 3}
- {fileID: 2800000, guid: 93cf1663d5965bf4d80cf672d0876bc1, type: 3}
- {fileID: 2800000, guid: dd9459c351017174da2da6bef012e33d, type: 3}
- {fileID: 2800000, guid: 9274b7593e675454c9644377822df3c8, type: 3}
- {fileID: 2800000, guid: c53b74d40436cac4db8899d0959f5d35, type: 3}
- {fileID: 2800000, guid: 996a29fe8f89d284e8b9614d842f3ed1, type: 3}
- {fileID: 2800000, guid: 959863a11fd21034bb40d77e59476fcb, type: 3}
- {fileID: 2800000, guid: d67909e63b1fede43a61aeb16e1a80d9, type: 3}
- {fileID: 2800000, guid: 171c124c1d6ab2941b0f8823fa60d526, type: 3}
- {fileID: 2800000, guid: 621503d5230c4b24fa0b14210443337a, type: 3}
- {fileID: 2800000, guid: d9fbfa83d49f2e748aca525ca409e482, type: 3}
- {fileID: 2800000, guid: b0c2f3bd5eff64141adb44d30c7f1bf0, type: 3}
- {fileID: 2800000, guid: ab9dc349303dacd40baedf099a9aa5de, type: 3}
- {fileID: 2800000, guid: c14bf38721dbb154190e83c4a764a1db, type: 3}
- {fileID: 2800000, guid: bdf809b5cc15f2c43afbb82e6ce47649, type: 3}
- {fileID: 2800000, guid: 1ec5bcf9142fcc542a2963649b135804, type: 3}
- {fileID: 2800000, guid: ce9d6c8fffba38b4194b4e4694ec0870, type: 3}
- {fileID: 2800000, guid: aad8eaf3562feb1408ae3b38e3376f4d, type: 3}
- {fileID: 2800000, guid: 32cdf55c95b4c134da0350097872df65, type: 3}
- {fileID: 2800000, guid: 86e712b881109e548be6fe63a7ad9fb1, type: 3}
- {fileID: 2800000, guid: a1a9b7ab7e8ed234fa3c71e80304d0ec, type: 3}
- {fileID: 2800000, guid: 364821d288eed2f4d98173e9b0204eca, type: 3}
bindAsDefault: 1
isAtlasV2: 0
cachedData: {fileID: 0}
packedSpriteRenderDataKeys: []
m_MasterAtlas: {fileID: 0}
m_PackedSprites: []
m_PackedSpriteNamesToIndex: []
m_RenderDataMap: {}
m_Tag: chibangSprite
m_IsVariant: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0866d7cf8d02e054098a519554ef8a43
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4343727234628468602
userData:
assetBundleName:
assetBundleVariant:
@@ -1396,6 +1396,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
await AudioResourcesData.UnLoadAudioGame();
if (flow != _resourceFlowToken) return;
UnLoadBulletClip(); // ⭐ 释放开火音效句柄(引用计数归零)
TurretResourcesData.UnloadAllZhanShen(ZhanShenUsage.GamePlay); // ⭐ 卸载按需加载的战神(游戏内)
TurretResourcesData.UnloadAllTurretPrefabs(); // ⭐ 卸载按需加载的炮台/翅膀 prefab
await MonsterMoveLine.UnLoadBezier();
if (flow != _resourceFlowToken) return;
// ⭐ 清空子弹池 + 特效池(鱼池已在 UnLoadFishAssetsData 内清理)
@@ -1445,6 +1447,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
await FishResourcesData.UnLoadFishAssetsData();
await AudioResourcesData.UnLoadAudioGame();
UnLoadBulletClip();
TurretResourcesData.UnloadAllZhanShen(ZhanShenUsage.GamePlay);
TurretResourcesData.UnloadAllTurretPrefabs();
await MonsterMoveLine.UnLoadBezier();
Debug.Log("[ChangeRoom] 切房失败,游戏资源已补卸载");
}
@@ -1530,6 +1534,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base
SetUnloadProgress(0.4f);
await AudioResourcesData.UnLoadAudioGame();
UnLoadBulletClip(); // ⭐ 释放开火音效句柄(引用计数归零)
TurretResourcesData.UnloadAllZhanShen(ZhanShenUsage.GamePlay); // ⭐ 卸载按需加载的战神(游戏内)
TurretResourcesData.UnloadAllTurretPrefabs(); // ⭐ 卸载按需加载的炮台/翅膀 prefab
SetUnloadProgress(0.6f);
await MonsterMoveLine.UnLoadBezier();
@@ -1,4 +1,5 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -464,6 +465,7 @@ public class UIHome_BY_ItemListPanels : SubUIBase
private void ClearItemList()
{
ReleasePreviewAcquired(); // ⭐ 切列表/关面板:释放当前预览的按需资源
foreach (var toggle in _instantiatedToggles)
{
if (toggle != null)
@@ -659,6 +661,7 @@ public class UIHome_BY_ItemListPanels : SubUIBase
private void ClearZhanShenItemList()
{
ReleasePreviewAcquired(); // ⭐ 切列表/关面板:释放当前预览的按需资源
foreach (var toggle in _instantiatedZSItemToggles)
{
if (toggle != null)
@@ -725,12 +728,8 @@ public class UIHome_BY_ItemListPanels : SubUIBase
if (rawImg_DetailPreview != null)
rawImg_DetailPreview.gameObject.SetActive(true);
// ---- 预览(和翅膀一样实例化预制体到预览区)----
if (resData != null && previewParent != null && prefab != null)
{
_currentPreviewObj = Instantiate(prefab, previewParent);
_currentPreviewObj.SetActive(true);
}
// ---- 预览(⭐按需加载:点哪个战神加载哪个,切走自动释放上一个)----
ShowPreviewOnDemand(turretNumber, true);
}
// ==================== 战神选择按钮 ====================
@@ -994,14 +993,12 @@ public class UIHome_BY_ItemListPanels : SubUIBase
rawImg_DetailPreview.gameObject.SetActive(_currentSelectType != ItemPanelSelect.Turrect);
// ---- 预览 ----
if (resData != null && previewParent != null && prefab != null)
// ---- 预览(⭐按需加载:点哪个加载哪个,切走自动释放上一个)----
ShowPreviewOnDemand(turretNumber, false, obj =>
{
_currentPreviewObj = Instantiate(prefab, previewParent);
_currentPreviewObj.SetActive(true);
if (_currentSelectType == ItemPanelSelect.Turrect)
if (obj != null && _currentSelectType == ItemPanelSelect.Turrect)
{
var rt = _currentPreviewObj.GetComponent<RectTransform>();
var rt = obj.GetComponent<RectTransform>();
if (rt != null)
{
rt.anchorMin = new Vector2(0.5f, 0f);
@@ -1010,7 +1007,7 @@ public class UIHome_BY_ItemListPanels : SubUIBase
rt.localScale = Vector3.one * 2.5f;
}
}
}
});
}
/// <summary>清除预览区当前展示的实例。</summary>
@@ -1023,6 +1020,71 @@ public class UIHome_BY_ItemListPanels : SubUIBase
}
}
// ==================== 预览按需加载(点哪个加载哪个,切走释放上一个) ====================
private int _previewSeq = 0;
/// <summary>当前预览已 Acquire 的编号(切走时释放)</summary>
private int _previewAcquiredId = 0;
private bool _previewAcquiredIsZS = false;
/// <summary>
/// ⭐ 按需加载并显示预览模型:释放上一个的按需引用 → 异步获取当前 → 实例化。
/// 战神走 ZS{编号}+Display 标签,炮台/翅膀走 PT{编号} 标签。
/// 快速连续点击由 seq 竞态丢弃(只显示最后点的那一个)。
/// onLoaded:实例化后的回调(炮台预览的 RectTransform 特殊处理等)。
/// </summary>
private void ShowPreviewOnDemand(int turretNumber, bool isZhanShen, System.Action<GameObject> onLoaded = null)
{
StartCoroutine(ShowPreviewRoutine(turretNumber, isZhanShen, onLoaded, ++_previewSeq));
}
private IEnumerator ShowPreviewRoutine(int turretNumber, bool isZhanShen, System.Action<GameObject> onLoaded, int seq)
{
// 释放上一个预览的按需引用(归零卸包 → 内存里同时只有一个预览资源)
ReleasePreviewAcquired();
if (turretNumber <= 0 || previewParent == null)
{
ClearPreview();
onLoaded?.Invoke(null);
yield break;
}
var task = isZhanShen
? TurretResourcesData.AcquireZhanShenAsync(turretNumber, ZhanShenUsage.Display)
: TurretResourcesData.AcquireTurretPrefabAsync(turretNumber);
while (!task.IsCompleted)
yield return null;
// 期间又点了别的 → 丢弃本次并归还引用
if (seq != _previewSeq)
{
if (isZhanShen) TurretResourcesData.ReleaseZhanShen(turretNumber, ZhanShenUsage.Display);
else TurretResourcesData.ReleaseTurretPrefab(turretNumber);
yield break;
}
GameObject prefab = task.Result;
ClearPreview();
if (prefab != null)
{
_previewAcquiredId = turretNumber;
_previewAcquiredIsZS = isZhanShen;
_currentPreviewObj = Instantiate(prefab, previewParent);
_currentPreviewObj.SetActive(true);
}
onLoaded?.Invoke(_currentPreviewObj);
}
/// <summary>释放当前预览的按需引用(面板关闭/切列表时调用,归零卸包)</summary>
private void ReleasePreviewAcquired()
{
if (_previewAcquiredId <= 0) return;
if (_previewAcquiredIsZS) TurretResourcesData.ReleaseZhanShen(_previewAcquiredId, ZhanShenUsage.Display);
else TurretResourcesData.ReleaseTurretPrefab(_previewAcquiredId);
_previewAcquiredId = 0;
}
/// <summary>根据道具数据生成特殊效果描述。</summary>
private static string GetSpecialEffectText(TurretResourcesData resData, TurretData turretData, BaseUserProp userProp = null)
{