From efce942e52601e73e81d8c0d30b1b668bbeb6622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A3=AE2003?= <2384017988@qq.com> Date: Thu, 16 Jul 2026 20:16:05 +0800 Subject: [PATCH] 1 --- Assets/Framework/Pool/EffectPool.cs | 13 + .../Scripts/Manager/CreateFishManager.cs | 4 + Assets/MyGame/Scripts/Net/APIManager.cs | 2 +- .../MyGame/Scripts/Net/APIRequestList_Hall.cs | 9 + .../Net/APIResponses/Enum/ProductTypeEnum.cs | 3 +- Assets/MyGame/Scripts/Net/APIType.cs | 3 + .../Net/WebResponses/RoomChangeResponse.cs | 5 +- .../Net/WebResponses/RoomJoinNotice.cs | 5 +- .../Scripts/Net/WebSocketManager_Message.cs | 6 +- Assets/MyGame/Scripts/Turret/SitPosData.cs | 47 + .../Resources/tbturretresources.json | 40 - .../MyGame/aa/Game/Turrets/paotai11004.prefab | 2 +- .../MyGame/aa/Game/Turrets/paotai11022.prefab | 2 +- .../MyGame/aa/Game/Turrets/paotai11032.prefab | 2 +- .../MyGame/aa/Game/Turrets/paotai11033.prefab | 2 +- .../MyGame/aa/Game/Turrets/paotai11034.prefab | 2 +- .../aa/UI/Game/GameMainPanel_FishBase.cs | 281 ++-- .../UI/Home/Sub/BackPack/BackPackPropItem.cs | 1 + .../aa/UI/Home/Sub/SelectRoomPanel.prefab | 17 +- Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab | 1390 ++++++++++++++++- .../aa/UI/Home/Sub/UIHome_BY_BackPackPanel.cs | 14 + 21 files changed, 1655 insertions(+), 195 deletions(-) diff --git a/Assets/Framework/Pool/EffectPool.cs b/Assets/Framework/Pool/EffectPool.cs index 870e37111..3c8df4453 100644 --- a/Assets/Framework/Pool/EffectPool.cs +++ b/Assets/Framework/Pool/EffectPool.cs @@ -128,6 +128,7 @@ public class EffectAutoReturn : MonoBehaviour private ParticleSystem[] particles; private float checkTimer; private const float MinPlayTime = 0.3f; // 至少播 0.3s 再检测,避免第一帧 IsAlive=false 误判 + private const float MaxLifetime = 6f; // ⭐ 兜底:超过 6 秒强制回池,防止 looping 残留导致特效永生 /// 重新播放所有粒子 public void Play() @@ -140,6 +141,11 @@ public class EffectAutoReturn : MonoBehaviour { if (p != null) { + // ⭐ 强制关闭 looping:有些预制体子级 ParticleSystem 设了 looping=1, + // 会导致 IsAlive(true) 永远返回 true,特效一直累加直至内存爆满死机 + var main = p.main; + main.loop = false; + p.Clear(true); p.Play(true); } @@ -151,6 +157,13 @@ public class EffectAutoReturn : MonoBehaviour checkTimer += Time.deltaTime; if (checkTimer < MinPlayTime) return; + // ⭐ 6 秒兜底:无论是否还存活,超过 6 秒强制回池 + if (checkTimer >= MaxLifetime) + { + EffectPool.Instance.Return(gameObject); + return; + } + // 所有粒子都播完 → 回池 if (particles == null || particles.Length == 0) { diff --git a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs index 2fe55d8db..49bb3c0db 100644 --- a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs +++ b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs @@ -1059,6 +1059,8 @@ public class CreateFishManager : MonoSingleton public void CreateFish(SyncGameData syncGameData) { if (isFrozen) return; // 冰冻中不创建鱼 + // ⭐ 场景卸载/CloseSpawnSystem 后 spawnDic 会变 null,此时收到的广播直接忽略 + if (spawnDic == null) return; var rotateData = FrameDataParser.Parse(syncGameData.frameData); if (rotateData != null) SpawnFishMainThread(rotateData, syncGameData.time); @@ -1068,6 +1070,8 @@ public class CreateFishManager : MonoSingleton /// private void SpawnFishMainThread(FrameData_CreateFish createFishData, long time) { + // ⭐ spawnDic 可能在场景卸载时被置 null,这里再保护一次 + if (spawnDic == null) return; if (!spawnDic.TryGetValue(createFishData.fishNumber, out var cfg)) { Debug.LogWarning($"[CreateFishManager] 找不到 spawnDic 配置: {createFishData.fishNumber}"); diff --git a/Assets/MyGame/Scripts/Net/APIManager.cs b/Assets/MyGame/Scripts/Net/APIManager.cs index 57908dbfb..aa755d85b 100644 --- a/Assets/MyGame/Scripts/Net/APIManager.cs +++ b/Assets/MyGame/Scripts/Net/APIManager.cs @@ -1,6 +1,5 @@ using Assets.MyGame.Scripts.Net.API; using Assets.MyGame.Scripts.Net.APIRequest; -using Best.HTTP.SecureProtocol.Org.BouncyCastle.Ocsp; using Newtonsoft.Json; using System; using System.Collections; @@ -166,6 +165,7 @@ namespace Assets.MyGame.Scripts.Net dic_API[APIType.Hall_GetChessRoomPartitionCount] = "/api/Hall/GetChessRoomPartitionCount"; dic_API[APIType.Hall_SendBroadcast] = "/api/Hall/SendBroadcast"; dic_API[APIType.Room_Assign] = "/api/Room/Assign"; + dic_API[APIType.Hall_UseVipExp] = "/api/Hall/UseVipExp"; // ---------------- Customer ---------------- dic_API[APIType.Customer_Start] = "/customerapi/Customer/start"; diff --git a/Assets/MyGame/Scripts/Net/APIRequestList_Hall.cs b/Assets/MyGame/Scripts/Net/APIRequestList_Hall.cs index 5fac6cd6a..846fed85c 100644 --- a/Assets/MyGame/Scripts/Net/APIRequestList_Hall.cs +++ b/Assets/MyGame/Scripts/Net/APIRequestList_Hall.cs @@ -320,6 +320,15 @@ namespace Assets.MyGame.Scripts.Net }, callback); } + /// + /// 使用VIP经验包(GET /api/Hall/UseVipExp) + /// 返回:string + /// + public static void UseVipExp(Action callback = null) + { + APIManager.Response(APIType.Hall_UseVipExp, callback); + } + #endregion } } diff --git a/Assets/MyGame/Scripts/Net/APIResponses/Enum/ProductTypeEnum.cs b/Assets/MyGame/Scripts/Net/APIResponses/Enum/ProductTypeEnum.cs index e6a1e914d..bde5ce47d 100644 --- a/Assets/MyGame/Scripts/Net/APIResponses/Enum/ProductTypeEnum.cs +++ b/Assets/MyGame/Scripts/Net/APIResponses/Enum/ProductTypeEnum.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -22,6 +22,7 @@ namespace Assets.MyGame.Scripts.Net.APIResponses.Enum 大喇叭=9, 技能=10, 召唤卡=11, + VIP经验=12, } diff --git a/Assets/MyGame/Scripts/Net/APIType.cs b/Assets/MyGame/Scripts/Net/APIType.cs index 7ddaa152c..4ac0d4cbe 100644 --- a/Assets/MyGame/Scripts/Net/APIType.cs +++ b/Assets/MyGame/Scripts/Net/APIType.cs @@ -342,6 +342,9 @@ namespace Assets.MyGame.Scripts.Net /// 获取房间专属 socket 地址(GET /api/Room/Assign?roomId=) Room_Assign, + /// 使用VIP经验包(GET /api/Hall/UseVipExp) + Hall_UseVipExp, + // ---------------- Customer ---------------- /// 发起会话(POST) diff --git a/Assets/MyGame/Scripts/Net/WebResponses/RoomChangeResponse.cs b/Assets/MyGame/Scripts/Net/WebResponses/RoomChangeResponse.cs index de962eba5..f19935b89 100644 --- a/Assets/MyGame/Scripts/Net/WebResponses/RoomChangeResponse.cs +++ b/Assets/MyGame/Scripts/Net/WebResponses/RoomChangeResponse.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; /// @@ -119,4 +119,7 @@ public class RoomPlayerInfo /// 玩家因子 /// public object playerFactor; + + /// 是否为机器人(后端下发) + public bool isBot; } diff --git a/Assets/MyGame/Scripts/Net/WebResponses/RoomJoinNotice.cs b/Assets/MyGame/Scripts/Net/WebResponses/RoomJoinNotice.cs index 1a06eb12a..c5f2b0720 100644 --- a/Assets/MyGame/Scripts/Net/WebResponses/RoomJoinNotice.cs +++ b/Assets/MyGame/Scripts/Net/WebResponses/RoomJoinNotice.cs @@ -1,4 +1,4 @@ -using Assets.MyGame.Scripts.Net.WebResponses; +using Assets.MyGame.Scripts.Net.WebResponses; using System; using System.Collections.Generic; namespace Assets.MyGame.Scripts.Net.WebResponses @@ -93,5 +93,8 @@ namespace Assets.MyGame.Scripts.Net.WebResponses /// 玩家状态(0 正常,其他状态可扩展) /// public int state; + + /// 是否为机器人(后端下发) + public bool isBot; } } \ No newline at end of file diff --git a/Assets/MyGame/Scripts/Net/WebSocketManager_Message.cs b/Assets/MyGame/Scripts/Net/WebSocketManager_Message.cs index 5a124c5be..cf8c5aeb8 100644 --- a/Assets/MyGame/Scripts/Net/WebSocketManager_Message.cs +++ b/Assets/MyGame/Scripts/Net/WebSocketManager_Message.cs @@ -452,8 +452,10 @@ namespace Assets.MyGame.Scripts.Net } else { - // 房主是其他真人:本地停止出鱼,避免重复发包 - CreateFishManager.Instance.fangzhu = false; + // ⭐ 只在 userId 非空且确实是真人玩家时才停止本地出鱼 + // userId 为空(异常情况)时保持原状,避免误关出鱼导致 bot 退出后不出鱼 + if (!string.IsNullOrEmpty(userId)) + CreateFishManager.Instance.fangzhu = false; } break; case "Exception": diff --git a/Assets/MyGame/Scripts/Turret/SitPosData.cs b/Assets/MyGame/Scripts/Turret/SitPosData.cs index 7f1e76b24..b897b27f8 100644 --- a/Assets/MyGame/Scripts/Turret/SitPosData.cs +++ b/Assets/MyGame/Scripts/Turret/SitPosData.cs @@ -60,6 +60,15 @@ public class SitPosData : MonoBehaviour public Transform tra_CurrTurret; public float currentAngle; + /// + /// 炮台在世界坐标(Z=0平面)的位置缓存。 + /// 因为炮台是 UGUI 元素,tra_CurrTurret.position 是 Canvas 坐标,不能直接和鱼的世界坐标比较距离。 + /// 这里用和子弹起点(GetBulletStartWorldPos)相同的转换方式,把 UI 坐标转成世界坐标。 + /// 由 LoadTurret 加载完炮台后计算并缓存,bot AI/锁定检测距离时用此字段。 + /// + [System.NonSerialized] + public Vector3 turretWorldPos; + // ------------------------- // 锁定系统 // ------------------------- @@ -232,9 +241,47 @@ public class SitPosData : MonoBehaviour // 绑定状态机入口 OnStateChange = currentTurret.ChangeState; + // ⭐ 缓存炮台在世界坐标(Z=0平面)的位置,bot AI/锁定检测距离时用 + // 和子弹起点(GetBulletStartWorldPos)用相同的 UI→世界 转换方式 + UpdateTurretWorldPos(); + Debug.Log($"[SitPosData] 炮台已加载: #{turretNumber}"); } + /// + /// 把炮台 UI 坐标转换成世界坐标(Z=0平面)并缓存到 turretWorldPos。 + /// 转换方式和 TurretData.GetBulletStartWorldPos 一致。 + /// + public void UpdateTurretWorldPos() + { + if (tra_CurrTurret == null) + { + turretWorldPos = Vector3.zero; + return; + } + + RectTransform rect = tra_CurrTurret.GetComponent(); + if (rect != null && UIManager.Instance != null && UIManager.Instance.uiRoot != null) + { + Canvas canvas = UIManager.Instance.uiRoot.GetComponent(); + Camera cam = Camera.main; + + Vector3 screenPos = RectTransformUtility.WorldToScreenPoint( + canvas.renderMode == RenderMode.ScreenSpaceOverlay ? null : canvas.worldCamera, + rect.position + ); + float distance = Mathf.Abs(cam.transform.position.z - 0f); + Vector3 worldPos = cam.ScreenToWorldPoint(new Vector3(screenPos.x, screenPos.y, distance)); + worldPos.z = 0f; + turretWorldPos = worldPos; + } + else + { + // 非 UI(3D 物体)直接用 position + turretWorldPos = tra_CurrTurret.position; + } + } + /// 根据炮台编号字符串加载。 public void LoadTurret(string turretNumberStr) { diff --git a/Assets/MyGame/Scripts/fishResources/Resources/tbturretresources.json b/Assets/MyGame/Scripts/fishResources/Resources/tbturretresources.json index 1f48a2c0b..8eb2ac153 100644 --- a/Assets/MyGame/Scripts/fishResources/Resources/tbturretresources.json +++ b/Assets/MyGame/Scripts/fishResources/Resources/tbturretresources.json @@ -59,16 +59,6 @@ "attackAudioID": 0, "bulletID": [] }, - { - "turretNumber": 11007, - "turretName": "萌娃驾到", - "turretType": 1, - "prefabTurretResourcesPath": "paotai11007", - "animationType": 1, - "prefabType": 0, - "attackAudioID": 0, - "bulletID": [] - }, { "turretNumber": 11008, "turretName": "创世之心", @@ -229,16 +219,6 @@ "attackAudioID": 0, "bulletID": [] }, - { - "turretNumber": 11024, - "turretName": "醒狮纳吉1", - "turretType": 1, - "prefabTurretResourcesPath": "paotai11024", - "animationType": 1, - "prefabType": 0, - "attackAudioID": 0, - "bulletID": [] - }, { "turretNumber": 11025, "turretName": "鸿兔先锋", @@ -409,16 +389,6 @@ "attackAudioID": 0, "bulletID": [] }, - { - "turretNumber": 11042, - "turretName": "战魂之刃", - "turretType": 1, - "prefabTurretResourcesPath": "paotai11042", - "animationType": 1, - "prefabType": 0, - "attackAudioID": 0, - "bulletID": [] - }, { "turretNumber": 11043, "turretName": "战神之怒", @@ -439,16 +409,6 @@ "attackAudioID": 0, "bulletID": [] }, - { - "turretNumber": 11045, - "turretName": "裂魂之刃", - "turretType": 1, - "prefabTurretResourcesPath": "paotai11045", - "animationType": 1, - "prefabType": 0, - "attackAudioID": 0, - "bulletID": [] - }, { "turretNumber": 12001, "turretName": "自由之翼", diff --git a/Assets/MyGame/aa/Game/Turrets/paotai11004.prefab b/Assets/MyGame/aa/Game/Turrets/paotai11004.prefab index 5f23c9373..161d14cc6 100644 --- a/Assets/MyGame/aa/Game/Turrets/paotai11004.prefab +++ b/Assets/MyGame/aa/Game/Turrets/paotai11004.prefab @@ -111,7 +111,7 @@ PrefabInstance: - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} propertyPath: idleAnim - value: idle + value: idel objectReference: {fileID: 0} - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} diff --git a/Assets/MyGame/aa/Game/Turrets/paotai11022.prefab b/Assets/MyGame/aa/Game/Turrets/paotai11022.prefab index 93c92f23a..f5533099b 100644 --- a/Assets/MyGame/aa/Game/Turrets/paotai11022.prefab +++ b/Assets/MyGame/aa/Game/Turrets/paotai11022.prefab @@ -116,7 +116,7 @@ PrefabInstance: - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} propertyPath: attackAnim - value: attack_1 + value: attack objectReference: {fileID: 0} - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} diff --git a/Assets/MyGame/aa/Game/Turrets/paotai11032.prefab b/Assets/MyGame/aa/Game/Turrets/paotai11032.prefab index ca2d0deeb..1627b2c83 100644 --- a/Assets/MyGame/aa/Game/Turrets/paotai11032.prefab +++ b/Assets/MyGame/aa/Game/Turrets/paotai11032.prefab @@ -116,7 +116,7 @@ PrefabInstance: - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} propertyPath: attackAnim - value: attack_1 + value: attcak_1 objectReference: {fileID: 0} - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} diff --git a/Assets/MyGame/aa/Game/Turrets/paotai11033.prefab b/Assets/MyGame/aa/Game/Turrets/paotai11033.prefab index b3c7c23ae..9e350e282 100644 --- a/Assets/MyGame/aa/Game/Turrets/paotai11033.prefab +++ b/Assets/MyGame/aa/Game/Turrets/paotai11033.prefab @@ -116,7 +116,7 @@ PrefabInstance: - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} propertyPath: attackAnim - value: attack_1 + value: attcak_1 objectReference: {fileID: 0} - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} diff --git a/Assets/MyGame/aa/Game/Turrets/paotai11034.prefab b/Assets/MyGame/aa/Game/Turrets/paotai11034.prefab index 0874595e9..1e98c288e 100644 --- a/Assets/MyGame/aa/Game/Turrets/paotai11034.prefab +++ b/Assets/MyGame/aa/Game/Turrets/paotai11034.prefab @@ -116,7 +116,7 @@ PrefabInstance: - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} propertyPath: attackAnim - value: attack_1 + value: attcak_1 objectReference: {fileID: 0} - target: {fileID: 5431233218450413364, guid: c2f0865344a970d459ea7df4bebb12fb, type: 3} diff --git a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs index 6b0061060..361a7cdf3 100644 --- a/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs +++ b/Assets/MyGame/aa/UI/Game/GameMainPanel_FishBase.cs @@ -217,10 +217,14 @@ public class GameMainPanel_FishBase : GameMainPanel_Base foreach (var item in GameManager.Instance.gameData.currRoomData.players) { JoinGame(item.position, item.gold, item.diamond, item.cannonMultiple, 0, item.userId, item.cannonId, item.wingsId); - // 后端 players 列表里 userId 以 "bot_" 开头的是机器人 + // ⭐ 优先用后端 isBot 字段,兼容 userId.StartsWith("bot_") var sit = list_Sits.Find(s => s.posID == item.position); - if (sit != null && !string.IsNullOrEmpty(item.userId) && item.userId.StartsWith("bot_")) - sit.isBot = true; + if (sit != null) + { + bool isBot = item.isBot || + (!string.IsNullOrEmpty(item.userId) && item.userId.StartsWith("bot_")); + if (isBot) sit.isBot = true; + } } GameManager.Instance.gameData.roomJoinNotice = v.arguments[0]; isfirstShow = false; @@ -249,12 +253,25 @@ public class GameMainPanel_FishBase : GameMainPanel_Base } else { - // 玩家加入 → 如果座位被bot占用则替换 var targetSit = list_Sits.Find(s => s.posID == roomJoinNotice.position); - if (targetSit != null && targetSit.isBot) + // ⭐ 优先用后端 isBot 字段判断,兼容 userId.StartsWith("bot_") + bool isBotJoin = roomJoinNotice.isBot || + (!string.IsNullOrEmpty(roomJoinNotice.userId) && roomJoinNotice.userId.StartsWith("bot_")); + + if (isBotJoin) { - targetSit.isBot = false; - targetSit.ShowWaiting(); + // bot 加入 → 标记 isBot=true (JoinGame 里会自动 SetActive(true) 座位) + if (targetSit != null) + targetSit.isBot = true; + } + else + { + // 真人玩家加入 → 如果座位被bot占用则替换 + if (targetSit != null && targetSit.isBot) + { + targetSit.isBot = false; + targetSit.ShowWaiting(); + } } JoinGame(roomJoinNotice.position, roomJoinNotice.gold, roomJoinNotice.diamond, roomJoinNotice.cannonMultiple, 0, roomJoinNotice.userId, roomJoinNotice.cannonId, roomJoinNotice.wingsId); @@ -1171,6 +1188,81 @@ public class GameMainPanel_FishBase : GameMainPanel_Base + #endregion + + #region 锁定位置解析(统一工具) + + /// + /// 统一锁定位置解析:colliderList 第一个活跃碰撞器 → lockPoint → monster.transform + /// 所有设置锁定位置的地方都应该调用此方法,避免不同地方用不同优先级导致锁定图标位置和子弹终点不一致。 + /// 注意:Unity 序列化字段未赋值时是"假 null",?? 运算符无法识别,必须用 == null 判断。 + /// + private Transform ResolveLockTransform(MonsterContral monster, out int colliderIndex) + { + colliderIndex = -1; + if (monster == null) return null; + + // 1. 优先用 colliderList 中第一个活跃的碰撞器 + if (monster.colliderList != null && monster.colliderList.Count > 0) + { + for (int i = 0; i < monster.colliderList.Count; i++) + { + var col = monster.colliderList[i]; + if (col != null && col.gameObject.activeInHierarchy) + { + colliderIndex = i; + return col; + } + } + } + + // 2. 其次用 lockPoint(锁定标志锚点,通常是屏幕中间/鱼身中心) + if (monster.lockPoint != null) + return monster.lockPoint; + + // 3. 兜底用 monster.transform + return monster.transform; + } + + /// 简化重载,不关心 colliderIndex 时用 + private Transform ResolveLockTransform(MonsterContral monster) + { + return ResolveLockTransform(monster, out _); + } + + #endregion + + #region 路径进度过滤(锁定范围控制) + + /// bot/玩家锁定时,鱼路径进度下限:小于此值表示鱼刚出生,不锁定 + private const float BotLockPathMin = 0.2f; + /// bot/玩家锁定时,鱼路径进度上限:大于此值表示鱼即将离场,不锁定 + private const float BotLockPathMax = 0.8f; + + /// + /// 计算鱼在路径上的进度 [0, 1]。 + /// 进度 = moveTime / monsterData.moveLine.moveTime + /// 0 = 刚出生,1 = 即将离场 + /// + private float GetFishPathProgress(MonsterContral m) + { + if (m == null || m.monsterData == null || m.monsterData.moveLine == null) return 1f; + float total = m.monsterData.moveLine.moveTime; + if (total <= 0f) return 1f; + return Mathf.Clamp01(m.moveTime / total); + } + + /// + /// 判断鱼的路径进度是否在可锁定范围内 [BotLockPathMin, BotLockPathMax] + /// 刚出生(< 0.2)或即将离场(> 0.8)的鱼不能锁定,避免锁定后立即丢失目标 + /// + private bool IsFishPathLockable(MonsterContral m) + { + if (m == null) return false; + float progress = GetFishPathProgress(m); + return progress >= BotLockPathMin && progress <= BotLockPathMax; + } + #endregion #region 多目标查找(TripleLock) @@ -1229,15 +1321,11 @@ public class GameMainPanel_FishBase : GameMainPanel_Base MonsterContral m = kv.Value; if (m == null || !m.gameObject.activeInHierarchy) continue; if (selected.Contains(m.guid)) continue; // 跳过已选中的 + // ⭐ 路径进度过滤:刚出生(< 0.2)或即将离场(> 0.8)的鱼不作为目标 + if (!IsFishPathLockable(m)) continue; - Transform pos = m.transform; - if (m.colliderList != null && m.colliderList.Count > 0) - { - foreach (var col in m.colliderList) - { - if (col.gameObject.activeInHierarchy) { pos = col; break; } - } - } + // ⭐ 统一用 ResolveLockTransform:colliderList → lockPoint → transform + Transform pos = ResolveLockTransform(m); result.Add((m, pos)); selected.Add(m.guid); @@ -1356,17 +1444,11 @@ public class GameMainPanel_FishBase : GameMainPanel_Base // 处理选中的最佳命中 MonsterContral monster = bestHit.collider.GetComponentInParent(); - // ⭐ 两个判断:lockPoint(屏幕中间/锁定锚点) 优先 → colliderList 中命中的碰撞器 → 兜底命中碰撞器 - // 不用 fish.gameObject.position;与 bot 锁定逻辑保持一致 - Transform lockTr; - if (monster.lockPoint != null) - lockTr = monster.lockPoint; - else if (monster.colliderList != null && monster.colliderList.Count > 0) - lockTr = bestHit.collider.transform; // 命中的碰撞器(在 colliderList 内) - else - lockTr = bestHit.collider.transform; // 兜底 + // ⭐ 统一用 ResolveLockTransform:colliderList 第一个活跃 → lockPoint → transform + // 返回的 colliderIndex 用于网络同步,其他客户端按此索引取同一碰撞器 + int colliderIndex; + Transform lockTr = ResolveLockTransform(monster, out colliderIndex); currSitData.SetLockTarget(monster, lockTr); - int colliderIndex = (monster.colliderList != null) ? monster.colliderList.IndexOf(bestHit.collider.transform) : -1; SyncLock(new List { monster?.guid }, colliderIndex); } private void UpdateLockFX() @@ -1397,35 +1479,15 @@ public class GameMainPanel_FishBase : GameMainPanel_Base if (!hitPos.gameObject.activeInHierarchy) { - if (monster.colliderList != null && monster.colliderList.Count > 0) - { - bool found = false; - foreach (Transform t in monster.colliderList) - { - if (t.gameObject.activeInHierarchy) - { - pos = t.position; - found = true; - break; - } - } - if (!found) - { - if (icon.activeSelf) icon.SetActive(false); - return; - } - } - else - { - // 注意:Unity 序列化字段未赋值时是"假 null",?? 运算符无法识别,必须用 == null - var lp = (monster.lockPoint != null) ? monster.lockPoint : monster.transform; - pos = lp.position; - } - if (!hitPos.gameObject.activeInHierarchy) + // ⭐ 原始 hitPos 失效 → 用 ResolveLockTransform 重新找一个有效位置 + // 统一逻辑:colliderList 第一个活跃 → lockPoint → transform + Transform fallback = ResolveLockTransform(monster); + if (fallback == null || !fallback.gameObject.activeInHierarchy) { if (icon.activeSelf) icon.SetActive(false); return; } + pos = fallback.position; } else { @@ -1472,30 +1534,9 @@ public class GameMainPanel_FishBase : GameMainPanel_Base MonsterContral target = FindAutoLockTarget(); if (target != null) { - // ⭐ 锁定位置与 HandleLock 一致:lockPoint 优先 → colliderList 第一个活跃碰撞器 → target.transform - Transform lockTr; - int colliderIndex = -1; - if (target.lockPoint != null) - { - lockTr = target.lockPoint; - } - else if (target.colliderList != null && target.colliderList.Count > 0) - { - lockTr = target.transform; - for (int i = 0; i < target.colliderList.Count; i++) - { - if (target.colliderList[i].gameObject.activeInHierarchy) - { - lockTr = target.colliderList[i]; - colliderIndex = i; - break; - } - } - } - else - { - lockTr = target.transform; - } + // ⭐ 统一用 ResolveLockTransform:colliderList 第一个活跃 → lockPoint → transform + int colliderIndex; + Transform lockTr = ResolveLockTransform(target, out colliderIndex); currSitData.SetLockTarget(target, lockTr); SyncLock(new List { target?.guid }, colliderIndex); } @@ -1517,12 +1558,15 @@ public class GameMainPanel_FishBase : GameMainPanel_Base MonsterContral best = null; float bestSqr = float.MaxValue; - Vector3 origin = currSitData.tra_CurrTurret.position; + // ⭐ 用世界坐标(Z=0平面),和 bot AI 一致,否则距离计算会异常(出现 3.4E+38 之类) + Vector3 origin = currSitData.turretWorldPos; foreach (var kv in CreateFishManager.Instance.fishDatas_hashCodekey) { MonsterContral m = kv.Value; if (m == null || !m.gameObject.activeInHierarchy) continue; + // ⭐ 路径进度过滤:刚出生(< 0.2)或即将离场(> 0.8)的鱼不作为自动锁定目标 + if (!IsFishPathLockable(m)) continue; float sqr = (m.transform.position - origin).sqrMagnitude; if (sqr < bestSqr) @@ -1840,15 +1884,11 @@ public class GameMainPanel_FishBase : GameMainPanel_Base } MonsterContral monster = CreateFishManager.Instance.fishDatas_hashCodekey[data.targetGuid[0]]; - Transform hitPos; - // ⭐ 与本地 HandleLock 保持一致:lockPoint(屏幕中间) 优先 → colliderList[colliderIndex] → fish.transform - if (monster.lockPoint != null) - hitPos = monster.lockPoint; - else if (monster.colliderList != null && monster.colliderList.Count > 0 && data.colliderIndex != -1) - hitPos = monster.colliderList[data.colliderIndex]; - else - hitPos = monster.transform; + // ⭐ 统一用 ResolveLockTransform:colliderList 第一个活跃 → lockPoint → transform + // 注:网络同步过来的 colliderIndex 在统一逻辑下不再使用,因为客户端之间 + // colliderList 顺序可能不一致,统一用"第一个活跃"更稳定 + Transform hitPos = ResolveLockTransform(monster); list_Sits[sync.sitPos].SetLockTarget(monster, hitPos); } @@ -2004,6 +2044,10 @@ public class GameMainPanel_FishBase : GameMainPanel_Base { if (sit.posID != sitNum) continue; + // ⭐ 确保座位 GameObject 本身是激活的(可能被 HandleBotExit 隐藏或初始为 inactive) + if (!sit.gameObject.activeSelf) + sit.gameObject.SetActive(true); + sit.user = user ?? GameManager.Instance.user.id; sit.goldNum = goldNum; sit.consumeGoldNum = consumeGold; @@ -2074,7 +2118,7 @@ public class GameMainPanel_FishBase : GameMainPanel_Base // ====== 退出检查 ====== if (CheckBotExit(sit, state, cfg)) continue; - Vector3 turretPos = sit.tra_CurrTurret.position; + Vector3 turretPos = sit.turretWorldPos; // ====== 技能刷新(底层随机技能) ====== if (cfg != null && cfg.skills != null) @@ -2101,10 +2145,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base { sit.isLock = true; sit.monCotl_Lock = target; - // ⭐ 锁定位置优先用 lockPoint(锁定标志锚点),与玩家锁定保持一致 - sit.monCotl_Lock_Position = (target.lockPoint != null) ? target.lockPoint - : (target.colliderList != null && target.colliderList.Count > 0 - ? target.colliderList[0].transform : target.transform); + // ⭐ 统一用 ResolveLockTransform:colliderList 第一个活跃 → lockPoint → transform + sit.monCotl_Lock_Position = ResolveLockTransform(target); if (sit.lockFX != null) sit.lockFX.SetActive(true); } } @@ -2195,6 +2237,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base { var m = kv.Value; if (m == null || !m.gameObject.activeInHierarchy) continue; + // ⭐ 路径进度过滤:刚出生(< 0.2)或即将离场(> 0.8)的 Boss 不作为目标 + if (!IsFishPathLockable(m)) continue; int ft = (int)m.fishenum; bool isBoss = false; @@ -2312,7 +2356,7 @@ public class GameMainPanel_FishBase : GameMainPanel_Base return true; } - /// 处理 bot 退出:发离房消息、座位清理 + /// 处理 bot 退出:发离房消息、座位清理、转移房主、保证出鱼 private void HandleBotExit(SitPosData sit, BotRuntimeState state, BotConfig cfg) { state.hasExited = true; @@ -2337,6 +2381,27 @@ public class GameMainPanel_FishBase : GameMainPanel_Base botLastAngle.Remove(sit.user); botLastFireData.Remove(sit.user); + // ⭐ bot 退出后转移房主,否则房主是已退出的 bot 会导致出鱼停止 + // 1) 清除 bot 的房主引用(如果它是房主) + // 2) TransferRoomOwner 会把房主交给第一个活跃的非 bot 玩家 + if (SitPosData.roomOwnerSit == sit) + { + SitPosData.roomOwnerSit = null; + SitPosData.TransferRoomOwner(); + } + + // ⭐ 强制保证本地玩家能继续出鱼: + // bot 退出后如果本地玩家是新的房主(或房主为空但本地玩家在场),开启 fangzhu + // 这是对 ChangeControllerUser 网络消息的兜底,防止网络消息丢失或时序问题导致不出鱼 + if (CreateFishManager.Instance != null) + { + bool localIsOwner = SitPosData.roomOwnerSit != null && + SitPosData.roomOwnerSit.user == GameManager.Instance.user.id; + bool noOwner = SitPosData.roomOwnerSit == null; + if (localIsOwner || noOwner) + CreateFishManager.Instance.fangzhu = true; + } + if (cfg != null && cfg.exitCondition != null && cfg.exitCondition.showWaitingAfterExit) sit.ShowWaiting(); else @@ -2399,15 +2464,30 @@ public class GameMainPanel_FishBase : GameMainPanel_Base if (fishList.fishDatas_hashCodekey.TryGetValue(guid, out var m) && m != null && m.gameObject.activeInHierarchy) { - // 锁定时不检查 inFront,始终跟踪目标 - if (isLocked) return m; - - Vector3 fp = m.transform.position; - bool inFront = sit.IsFlipped ? fp.y < turretPos.y : fp.y > turretPos.y; - if (inFront) return m; + // ⭐ 路径进度过滤:如果记忆目标已经超出可锁定范围(即将离场),清除记忆重新找 + if (!IsFishPathLockable(m)) + { + botTargetGuid.Remove(sit.posID); + } + else if (isLocked) + { + // 锁定时不检查 inFront,始终跟踪目标 + return m; + } + else + { + Vector3 fp = m.transform.position; + bool inFront = sit.IsFlipped ? fp.y < turretPos.y : fp.y > turretPos.y; + if (inFront) return m; + // 不在前方 → 清除记忆 + botTargetGuid.Remove(sit.posID); + } + } + else + { + // 目标无效 → 清除记忆 + botTargetGuid.Remove(sit.posID); } - // 目标无效 → 清除记忆 - botTargetGuid.Remove(sit.posID); } // 2. 锁定Boss模式 → 优先最大倍率Boss @@ -2468,6 +2548,8 @@ public class GameMainPanel_FishBase : GameMainPanel_Base { var m = kv.Value; if (m == null || !m.gameObject.activeInHierarchy) continue; + // ⭐ 路径进度过滤:刚出生(< 0.2)或即将离场(> 0.8)的鱼不作为目标 + if (!IsFishPathLockable(m)) continue; Vector3 fishPos = m.transform.position; if (sit.IsFlipped && fishPos.y >= turretPos.y) continue; @@ -2505,13 +2587,16 @@ public class GameMainPanel_FishBase : GameMainPanel_Base var result = new List(); if (CreateFishManager.Instance == null) return result; var fishList = CreateFishManager.Instance; - Vector3 turretPos = sit.tra_CurrTurret.position; + // ⭐ 用世界坐标(Z=0平面),和 bot AI / 玩家自动锁定一致 + Vector3 turretPos = sit.turretWorldPos; foreach (var kv in fishList.fishDatas_hashCodekey) { var m = kv.Value; if (m == null || !m.gameObject.activeInHierarchy) continue; if (m == exclude) continue; + // ⭐ 路径进度过滤:刚出生(< 0.2)或即将离场(> 0.8)的鱼不作为目标 + if (!IsFishPathLockable(m)) continue; Vector3 fishPos = m.transform.position; if (sit.IsFlipped && fishPos.y >= turretPos.y) continue; diff --git a/Assets/MyGame/aa/UI/Home/Sub/BackPack/BackPackPropItem.cs b/Assets/MyGame/aa/UI/Home/Sub/BackPack/BackPackPropItem.cs index 6f647b32b..96ee4fe11 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/BackPack/BackPackPropItem.cs +++ b/Assets/MyGame/aa/UI/Home/Sub/BackPack/BackPackPropItem.cs @@ -23,6 +23,7 @@ public enum PropEnum 大喇叭 = 9, 技能 = 10, 召唤卡 = 11, + VIP经验 = 12, } /// diff --git a/Assets/MyGame/aa/UI/Home/Sub/SelectRoomPanel.prefab b/Assets/MyGame/aa/UI/Home/Sub/SelectRoomPanel.prefab index 7adcb00c4..b14bd95ce 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/SelectRoomPanel.prefab +++ b/Assets/MyGame/aa/UI/Home/Sub/SelectRoomPanel.prefab @@ -196105,9 +196105,9 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 m_Children: + - {fileID: 7752753625073944563} - {fileID: 7718285068269790146} - {fileID: 1106327632507529043} - - {fileID: 7752753625073944563} m_Father: {fileID: 408568649757843747} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -201581,6 +201581,21 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -532.66003 objectReference: {fileID: 0} + - target: {fileID: 1465445835306222036, guid: 9351da778e1c18c4f9243b73d7569c66, + type: 3} + propertyPath: m_Spacing.x + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 1465445835306222036, guid: 9351da778e1c18c4f9243b73d7569c66, + type: 3} + propertyPath: m_Padding.m_Top + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 1465445835306222036, guid: 9351da778e1c18c4f9243b73d7569c66, + type: 3} + propertyPath: m_Padding.m_Left + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1987338642318344794, guid: 9351da778e1c18c4f9243b73d7569c66, type: 3} propertyPath: m_AnchorMax.y diff --git a/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab b/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab index 2388b1bdf..76033b67e 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab +++ b/Assets/MyGame/aa/UI/Home/Sub/ShopPanel.prefab @@ -12,6 +12,7 @@ GameObject: - component: {fileID: 7475684350327161641} - component: {fileID: 2999850437180951867} - component: {fileID: 3993569257343018011} + - component: {fileID: 1587883670084963935} m_Layer: 0 m_Name: tab_bg m_TagString: Untagged @@ -34,9 +35,7 @@ RectTransform: - {fileID: 5018749024446074063} - {fileID: 4099413306987239573} - {fileID: 9209343577519565382} - - {fileID: 9131817000259156929} - - {fileID: 2311266713680213668} - - {fileID: 7030139532998704001} + - {fileID: 2213576700121901728} m_Father: {fileID: 2800466959481121481} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} @@ -95,6 +94,32 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_AllowSwitchOff: 0 +--- !u!114 &1587883670084963935 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9053741721176472} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 130 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 4.39 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &327084930252080924 GameObject: m_ObjectHideFlags: 0 @@ -155,7 +180,6 @@ MonoBehaviour: btn_GlodCoins: {fileID: 5537998826616395512} btn_Diamond: {fileID: 4260393729136566951} btn_Prop: {fileID: 6068573047019317676} - img_VIP: {fileID: 1368775716292161905} slider_VIP: {fileID: 4388864028478372557} btn_VIPPanel: {fileID: 4365641984094405629} tmp_JinDu: {fileID: 8381519886300155708} @@ -572,6 +596,81 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &648214833262055559 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5434037520269598060} + - component: {fileID: 328402861327384023} + - component: {fileID: 1400364579592932374} + m_Layer: 0 + m_Name: "\u9053\u5177_1" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5434037520269598060 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648214833262055559} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2635417969949444179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.5001221, y: -0} + m_SizeDelta: {x: 56, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &328402861327384023 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648214833262055559} + m_CullTransparentMesh: 1 +--- !u!114 &1400364579592932374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 648214833262055559} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 670ccd47bc650364eb87569252109300, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &882015072045484513 GameObject: m_ObjectHideFlags: 0 @@ -590,7 +689,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &4099413306987239573 RectTransform: m_ObjectHideFlags: 0 @@ -808,10 +907,10 @@ RectTransform: - {fileID: 8735857306252785424} m_Father: {fileID: 3963878325541999432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.50006104, y: 205.99991} - m_SizeDelta: {x: 196, y: 76} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 197, y: 76} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6106898449817104074 CanvasRenderer: @@ -1319,6 +1418,282 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1814705596897950214 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2620388113248288904} + - component: {fileID: 7427569879499342429} + - component: {fileID: 2056184177619410372} + m_Layer: 0 + m_Name: "\u5546\u57CE\u6807\u9898" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2620388113248288904 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814705596897950214} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4326793154462071497} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000061035156, y: 321.99988} + m_SizeDelta: {x: 234, y: 96} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7427569879499342429 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814705596897950214} + m_CullTransparentMesh: 1 +--- !u!114 &2056184177619410372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1814705596897950214} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a80468d5756822c45ac75df013894302, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1952233584602489322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8904818860769356618} + - component: {fileID: 6897994078688488957} + - component: {fileID: 1952531325331812791} + m_Layer: 0 + m_Name: "\u9053\u5177" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8904818860769356618 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952233584602489322} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2635417969949444179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.49987793, y: -2.4999123} + m_SizeDelta: {x: 232, y: 84} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6897994078688488957 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952233584602489322} + m_CullTransparentMesh: 1 +--- !u!114 &1952531325331812791 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1952233584602489322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8c44dfce9c555144292a05566e3d2026, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2060685186688961224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2635417969949444179} + - component: {fileID: 7600724557707928154} + - component: {fileID: 3670705682277939011} + - component: {fileID: 1977438794202325277} + m_Layer: 0 + m_Name: prop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2635417969949444179 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060685186688961224} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5434037520269598060} + - {fileID: 8904818860769356618} + m_Father: {fileID: 4326793154462071497} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1.000061, y: 43.999905} + m_SizeDelta: {x: 198, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7600724557707928154 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060685186688961224} + m_CullTransparentMesh: 1 +--- !u!114 &3670705682277939011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060685186688961224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9f7008a0f2f97fa4ba052962f50975d3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1977438794202325277 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060685186688961224} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3670705682277939011} + toggleTransition: 1 + graphic: {fileID: 1952531325331812791} + m_Group: {fileID: 6025583618096682811} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 --- !u!1 &2098970378844556814 GameObject: m_ObjectHideFlags: 0 @@ -1430,7 +1805,7 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} ---- !u!1 &2692985552052726686 +--- !u!1 &2685719857415325368 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1438,50 +1813,53 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7030139532998704001} - - component: {fileID: 3427444360937661515} - - component: {fileID: 4971594737603170687} + - component: {fileID: 4117086767498945930} + - component: {fileID: 562899348845581950} + - component: {fileID: 1951398290338211002} + - component: {fileID: 1139590509447125669} m_Layer: 0 - m_Name: "\u9753\u53F7" + m_Name: Gold m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &7030139532998704001 +--- !u!224 &4117086767498945930 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2692985552052726686} + m_GameObject: {fileID: 2685719857415325368} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3963878325541999432} + m_Children: + - {fileID: 6848222016727267666} + - {fileID: 7107094230526293008} + m_Father: {fileID: 4326793154462071497} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 2.000061, y: -40.000004} - m_SizeDelta: {x: 56, y: 28} + m_AnchoredPosition: {x: 0.50006104, y: 205.99991} + m_SizeDelta: {x: 196, y: 76} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &3427444360937661515 +--- !u!222 &562899348845581950 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2692985552052726686} + m_GameObject: {fileID: 2685719857415325368} m_CullTransparentMesh: 1 ---- !u!114 &4971594737603170687 +--- !u!114 &1951398290338211002 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2692985552052726686} + m_GameObject: {fileID: 2685719857415325368} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -1495,7 +1873,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: c7858e48ed9a6b748a87ee35e9437f2c, type: 3} + m_Sprite: {fileID: 21300000, guid: 8bb387c810b0d174bb70b1ed7b4cf0a1, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -1505,6 +1883,54 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1139590509447125669 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2685719857415325368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1951398290338211002} + toggleTransition: 1 + graphic: {fileID: 1268214878054540129} + m_Group: {fileID: 6025583618096682811} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &2986536915585990986 GameObject: m_ObjectHideFlags: 0 @@ -1701,6 +2127,156 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3296922841742085843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2894403366403226824} + - component: {fileID: 7990115453821846194} + - component: {fileID: 313034901229677866} + m_Layer: 0 + m_Name: "\u9053\u5177" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2894403366403226824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3296922841742085843} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2213576700121901728} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.49987793, y: -2.4999123} + m_SizeDelta: {x: 232, y: 84} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7990115453821846194 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3296922841742085843} + m_CullTransparentMesh: 1 +--- !u!114 &313034901229677866 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3296922841742085843} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 8c44dfce9c555144292a05566e3d2026, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3350259094062331418 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2929939681049724638} + - component: {fileID: 1475382254850966379} + - component: {fileID: 7629690592179702911} + m_Layer: 0 + m_Name: "\u9053\u5177_1" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2929939681049724638 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3350259094062331418} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2213576700121901728} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 1.5001221, y: -0} + m_SizeDelta: {x: 56, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1475382254850966379 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3350259094062331418} + m_CullTransparentMesh: 1 +--- !u!114 &7629690592179702911 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3350259094062331418} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 670ccd47bc650364eb87569252109300, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &3476082326326244120 GameObject: m_ObjectHideFlags: 0 @@ -1776,6 +2352,81 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3477014004870217824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7123472565948455275} + - component: {fileID: 2468448125273833045} + - component: {fileID: 7659677034880351693} + m_Layer: 0 + m_Name: "TAB\u672A\u70B9\u51FB\u663E\u793A\u6309\u94AE_2" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7123472565948455275 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3477014004870217824} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4326793154462071497} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1.000061, y: -40.000004} + m_SizeDelta: {x: 198, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2468448125273833045 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3477014004870217824} + m_CullTransparentMesh: 1 +--- !u!114 &7659677034880351693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3477014004870217824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: cf141bb6a28f672438a9cd2e517c6775, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &3710480978104680047 GameObject: m_ObjectHideFlags: 0 @@ -2651,6 +3302,132 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &5259868509265915315 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2213576700121901728} + - component: {fileID: 7200381759403655092} + - component: {fileID: 5130157367264445789} + - component: {fileID: 6442055651967371964} + m_Layer: 0 + m_Name: prop (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2213576700121901728 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5259868509265915315} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2929939681049724638} + - {fileID: 2894403366403226824} + m_Father: {fileID: 3963878325541999432} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 198, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7200381759403655092 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5259868509265915315} + m_CullTransparentMesh: 1 +--- !u!114 &5130157367264445789 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5259868509265915315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9f7008a0f2f97fa4ba052962f50975d3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6442055651967371964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5259868509265915315} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5130157367264445789} + toggleTransition: 1 + graphic: {fileID: 313034901229677866} + m_Group: {fileID: 3993569257343018011} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 --- !u!1 &5324851311978748130 GameObject: m_ObjectHideFlags: 0 @@ -2786,7 +3563,7 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &5386248517297486432 +--- !u!1 &5521479464011837042 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -2794,50 +3571,50 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 9131817000259156929} - - component: {fileID: 5924801224352399823} - - component: {fileID: 4439322157553408122} + - component: {fileID: 6022179040125424357} + - component: {fileID: 5905740350367644285} + - component: {fileID: 5484774235366263751} m_Layer: 0 - m_Name: "TAB\u672A\u70B9\u51FB\u663E\u793A\u6309\u94AE_2" + m_Name: "\u9753\u53F7" m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &9131817000259156929 +--- !u!224 &6022179040125424357 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5386248517297486432} + m_GameObject: {fileID: 5521479464011837042} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3963878325541999432} + m_Father: {fileID: 4326793154462071497} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -1.000061, y: -40.000004} - m_SizeDelta: {x: 198, y: 76} + m_AnchoredPosition: {x: 2.000061, y: -40.000004} + m_SizeDelta: {x: 56, y: 28} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &5924801224352399823 +--- !u!222 &5905740350367644285 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5386248517297486432} + m_GameObject: {fileID: 5521479464011837042} m_CullTransparentMesh: 1 ---- !u!114 &4439322157553408122 +--- !u!114 &5484774235366263751 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5386248517297486432} + m_GameObject: {fileID: 5521479464011837042} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -2851,7 +3628,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: cf141bb6a28f672438a9cd2e517c6775, type: 3} + m_Sprite: {fileID: 21300000, guid: c7858e48ed9a6b748a87ee35e9437f2c, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -2891,11 +3668,11 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3963878325541999432} + m_Father: {fileID: 2800466959481121481} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0.000061035156, y: 321.99988} + m_AnchoredPosition: {x: -692.99994, y: 321.99988} m_SizeDelta: {x: 234, y: 96} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &8081971284025081404 @@ -3381,9 +4158,9 @@ RectTransform: - {fileID: 6459675234253938381} m_Father: {fileID: 3963878325541999432} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -1.000061, y: 43.999905} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 198, y: 76} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &3814492098369324676 @@ -3472,6 +4249,81 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_IsOn: 0 +--- !u!1 &6591845860501630285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4264917012378340900} + - component: {fileID: 1379738438188382624} + - component: {fileID: 1737203938379632910} + m_Layer: 0 + m_Name: "\u94BB\u77F3_7" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4264917012378340900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591845860501630285} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8725976754787177609} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -2.499878, y: -5.499977} + m_SizeDelta: {x: 232, y: 84} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1379738438188382624 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591845860501630285} + m_CullTransparentMesh: 1 +--- !u!114 &1737203938379632910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6591845860501630285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 15e15248e3013884983ee592ed1b56c8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &6696433636029030240 GameObject: m_ObjectHideFlags: 0 @@ -3564,6 +4416,81 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6718755503042034610 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7107094230526293008} + - component: {fileID: 51047575974180912} + - component: {fileID: 1268214878054540129} + m_Layer: 0 + m_Name: "\u91D1\u5E01_7" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7107094230526293008 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6718755503042034610} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4117086767498945930} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -3.000122, y: -4.0000153} + m_SizeDelta: {x: 232, y: 84} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &51047575974180912 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6718755503042034610} + m_CullTransparentMesh: 1 +--- !u!114 &1268214878054540129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6718755503042034610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6a703cce231e98247926b9f9d0e2833b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &6745270331574209499 GameObject: m_ObjectHideFlags: 0 @@ -3969,6 +4896,81 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7218205151105501489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1788256505870760680} + - component: {fileID: 4766545386497352434} + - component: {fileID: 5115410211761395249} + m_Layer: 0 + m_Name: "\u94BB\u77F3_8" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1788256505870760680 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7218205151105501489} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8725976754787177609} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.9998169, y: -2.499977} + m_SizeDelta: {x: 54, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4766545386497352434 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7218205151105501489} + m_CullTransparentMesh: 1 +--- !u!114 &5115410211761395249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7218205151105501489} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: dfdaf42f46dc4a94ab0a9b34606130e3, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &7272423395137337159 GameObject: m_ObjectHideFlags: 0 @@ -4080,6 +5082,81 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &7834712047384233985 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6848222016727267666} + - component: {fileID: 3883325218378370699} + - component: {fileID: 970398531941791623} + m_Layer: 0 + m_Name: "\u91D1\u5E01_8" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6848222016727267666 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7834712047384233985} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4117086767498945930} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -2, y: 0.49996948} + m_SizeDelta: {x: 56, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3883325218378370699 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7834712047384233985} + m_CullTransparentMesh: 1 +--- !u!114 &970398531941791623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7834712047384233985} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 4b2020beca1125b43b00ceff4384a43d, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &7843397145500281725 GameObject: m_ObjectHideFlags: 0 @@ -4110,7 +5187,9 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 m_Children: + - {fileID: 2311266713680213668} - {fileID: 3963878325541999432} + - {fileID: 4326793154462071497} - {fileID: 6331396984610428334} - {fileID: 3640978790683811105} - {fileID: 360625025356758921} @@ -4236,6 +5315,227 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8073509125131304379 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4326793154462071497} + - component: {fileID: 4183756552576744500} + - component: {fileID: 7295321109477743225} + - component: {fileID: 6025583618096682811} + m_Layer: 0 + m_Name: tab_bg (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4326793154462071497 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8073509125131304379} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4117086767498945930} + - {fileID: 8725976754787177609} + - {fileID: 2635417969949444179} + - {fileID: 7123472565948455275} + - {fileID: 2620388113248288904} + - {fileID: 6022179040125424357} + m_Father: {fileID: 2800466959481121481} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 119, y: 0.000030517578} + m_SizeDelta: {x: 204, y: 750} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4183756552576744500 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8073509125131304379} + m_CullTransparentMesh: 1 +--- !u!114 &7295321109477743225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8073509125131304379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 0bf20d23a2b0e3d40921077b2e8fd195, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6025583618096682811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8073509125131304379} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowSwitchOff: 0 +--- !u!1 &8289620119807166397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8725976754787177609} + - component: {fileID: 8460009100187248650} + - component: {fileID: 2571691627049267339} + - component: {fileID: 349302067764095752} + m_Layer: 0 + m_Name: diamond + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8725976754787177609 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289620119807166397} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1788256505870760680} + - {fileID: 4264917012378340900} + m_Father: {fileID: 4326793154462071497} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -1.000061, y: 127.99987} + m_SizeDelta: {x: 198, y: 76} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8460009100187248650 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289620119807166397} + m_CullTransparentMesh: 1 +--- !u!114 &2571691627049267339 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289620119807166397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 057e490a2847a3b42991c7089a8b7697, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &349302067764095752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289620119807166397} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2571691627049267339} + toggleTransition: 1 + graphic: {fileID: 1737203938379632910} + m_Group: {fileID: 6025583618096682811} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 --- !u!1 &8337807372357246650 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_BackPackPanel.cs b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_BackPackPanel.cs index d500ad708..804d49aee 100644 --- a/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_BackPackPanel.cs +++ b/Assets/MyGame/aa/UI/Home/Sub/UIHome_BY_BackPackPanel.cs @@ -217,6 +217,20 @@ public class UIHome_BY_BackPackPanel : SubUIBase break; case PropEnum.技能: break; case PropEnum.召唤卡: break; + case PropEnum.VIP经验: + UIManager.Instance.ShowTiShi($"确定要使用VIP经验包吗?", () => + { + APIRequestList.UseVipExp((result) => + { + UIManager.Instance.ShowBoardError("使用成功"); + // 刷新用户数据 + APIRequestList.GetUser(GameManager.Instance.user.id, (user) => + { + GameManager.Instance.UpdataUserData(user); + }); + }); + }); + break; default: break; } });