From f589162a656a5cec6747d2e5acb74b1f67b54398 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A3=AE2003?= <2384017988@qq.com>
Date: Sat, 1 Aug 2026 00:49:49 +0800
Subject: [PATCH] 1
---
.../game/enemy/XJMHEnemy/PW_Enemy_1.prefab | 27 +++++-
.../game/enemy/XJMHEnemy/PW_Enemy_1000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_101.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_102.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_103.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_104.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_105.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_106.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_107.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_108.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_109.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_110.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_111.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_112.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_113.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_114.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_115.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_2.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_2000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_3.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_3000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_31.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_32.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_4.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_4000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_5.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_5000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_6.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_6000.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_7.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_8.prefab | 19 +++-
.../game/enemy/XJMHEnemy/PW_Enemy_9.prefab | 19 +++-
.../Characters/Monster/MonsterContral.cs | 31 +++++-
.../Scripts/Manager/CreateFishManager.cs | 94 ++++++++++++++++---
Assets/MyGame/Scripts/Manager/GameManager.cs | 70 ++++++++++++++
Assets/MyGame/Scripts/Net/APIManager.cs | 4 +-
Assets/MyGame/Scripts/Net/WebSocketManager.cs | 4 +-
.../HHWK/MonsterTSY/ZDX/HHWK_ZDX_DieEvent.cs | 11 ++-
.../DefaultPanel/LoadPanel/LoadPanel.prefab | 81 ----------------
.../aa/UI/Game/XJMH/GameMainPanelXJMH.prefab | 10 +-
Assets/MyGame/aa/UI/Login/LoginPanel.prefab | 2 +-
41 files changed, 758 insertions(+), 165 deletions(-)
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1.prefab
index a93fb7b1a..f5dcc70aa 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1.prefab
@@ -235,17 +235,30 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5e5dca86a57fe2144a34f1f2ddb93962, type: 3}
m_Name:
m_EditorClassIdentifier:
+ beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12004
@@ -256,9 +269,19 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
+ colliderList: []
+ lockPoint: {fileID: 0}
+ bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
+ rotationPY: 60
+ baseMmove: 0
isRotate: 1
+ isNot1: 0
+ ischild0: 0
+ depthOffset: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1000.prefab
index a0d02dbd6..f2569adcb 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_1000.prefab
@@ -94476,16 +94476,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12026
@@ -94504,8 +94516,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -94520,6 +94535,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1342219384832420
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_101.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_101.prefab
index 13f2996e5..6404b0e7b 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_101.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_101.prefab
@@ -5157,16 +5157,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12011
@@ -5177,15 +5189,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_102.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_102.prefab
index 430526c3a..bc3010470 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_102.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_102.prefab
@@ -2577,16 +2577,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12025
@@ -2597,15 +2609,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_103.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_103.prefab
index c39b4381b..1a830b961 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_103.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_103.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12014
@@ -67,15 +79,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_104.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_104.prefab
index 3a207b719..53b0c5faa 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_104.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_104.prefab
@@ -171,16 +171,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12016
@@ -191,15 +203,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_105.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_105.prefab
index 0429f4b88..9905eb9e1 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_105.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_105.prefab
@@ -275,16 +275,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12015
@@ -295,15 +307,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_106.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_106.prefab
index e7991a542..f1003cb7e 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_106.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_106.prefab
@@ -236,16 +236,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12012
@@ -256,15 +268,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_107.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_107.prefab
index ef881917b..b7998b7cd 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_107.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_107.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12013
@@ -67,15 +79,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_108.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_108.prefab
index 52382439e..790ce7e4b 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_108.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_108.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12010
@@ -67,15 +79,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_109.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_109.prefab
index cadff16f2..f554cbd9a 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_109.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_109.prefab
@@ -81,16 +81,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12017
@@ -101,15 +113,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_110.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_110.prefab
index 809011ef3..733a7fc3e 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_110.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_110.prefab
@@ -4820,16 +4820,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12018
@@ -4840,15 +4852,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_111.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_111.prefab
index fe5956a90..3d6a6af9e 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_111.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_111.prefab
@@ -2508,16 +2508,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12019
@@ -2528,15 +2540,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_112.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_112.prefab
index dc26df4cd..490562c9c 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_112.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_112.prefab
@@ -9924,16 +9924,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12024
@@ -9952,8 +9964,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -9968,6 +9983,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1686538788857643
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_113.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_113.prefab
index 75f57059c..9f57ef693 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_113.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_113.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12023
@@ -75,8 +87,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -91,6 +106,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1510349609859810
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_114.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_114.prefab
index d3a52406b..471e12312 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_114.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_114.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12022
@@ -75,8 +87,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -91,6 +106,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1420488802914014
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_115.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_115.prefab
index c7b70a210..0491b86a1 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_115.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_115.prefab
@@ -4757,16 +4757,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12034
@@ -4785,8 +4797,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -4801,6 +4816,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1051144311364905
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2.prefab
index 13b7a3b35..63370bad9 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2.prefab
@@ -152,16 +152,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12001
@@ -172,15 +184,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2000.prefab
index 06a7edb09..559627ed9 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_2000.prefab
@@ -257,16 +257,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 0
@@ -285,8 +297,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -301,6 +316,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1906073984553799
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3.prefab
index acd53a86c..b8eaa33d8 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12006
@@ -67,15 +79,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3000.prefab
index ae96bc9a0..fdd6247e6 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_3000.prefab
@@ -381,16 +381,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 0
@@ -409,8 +421,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -425,6 +440,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1966902332286633
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_31.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_31.prefab
index 74cd417fe..f22693307 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_31.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_31.prefab
@@ -4990,16 +4990,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12021
@@ -5010,15 +5022,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_32.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_32.prefab
index 49e98d6e9..6df04f236 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_32.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_32.prefab
@@ -2405,16 +2405,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12020
@@ -2425,15 +2437,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4.prefab
index 316efb3ae..72485f368 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4.prefab
@@ -152,16 +152,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12003
@@ -172,15 +184,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4000.prefab
index 13d089f28..f845814ba 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_4000.prefab
@@ -111026,16 +111026,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12029
@@ -111054,8 +111066,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -111070,6 +111085,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1674767965698531
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5.prefab
index 51d1bc23b..3829f3c06 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5.prefab
@@ -152,16 +152,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12009
@@ -172,15 +184,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5000.prefab
index 442d4d789..438ba7602 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_5000.prefab
@@ -54262,16 +54262,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 0
@@ -54290,8 +54302,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -54306,6 +54321,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1140020597219083
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6.prefab
index a03f9e074..3ac1956db 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6.prefab
@@ -132,16 +132,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12005
@@ -152,15 +164,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6000.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6000.prefab
index b12211393..9e6388bf7 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6000.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_6000.prefab
@@ -173932,16 +173932,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12031
@@ -173960,8 +173972,11 @@ MonoBehaviour:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
- isRotate: 1
+ baseMmove: 0
+ isRotate: 0
isNot1: 0
ischild0: 0
depthOffset: 0
@@ -173976,6 +173991,8 @@ MonoBehaviour:
isDieFish: 0
dieTime: 3
v3: {x: 0, y: 0, z: 0}
+ isLocalCoin: 0
+ killerSitPos: -1
--- !u!1 &1859942215565796
GameObject:
m_ObjectHideFlags: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_7.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_7.prefab
index 65bbfbbab..d6a2eff13 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_7.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_7.prefab
@@ -47,16 +47,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12007
@@ -67,15 +79,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_8.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_8.prefab
index b415ce0bb..bb85d7083 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_8.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_8.prefab
@@ -237,16 +237,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12008
@@ -257,15 +269,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_9.prefab b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_9.prefab
index b723b50c7..15d9a98a9 100644
--- a/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_9.prefab
+++ b/Assets/Art/XJMH/pw/pw_prefab/game/enemy/XJMHEnemy/PW_Enemy_9.prefab
@@ -2550,16 +2550,28 @@ MonoBehaviour:
m_EditorClassIdentifier:
beilv: 0
guid:
+ lastMoveLineId:
monsterData:
die_Score: 0
isDie: 0
fishTypeConfig:
fishNumber:
fishName:
+ fishBrief:
fishType: 0
fishScore: 0
killWeight: 0
pathList:
+ fishImage:
+ fishMultipleDesc:
+ moveLine:
+ bezierCurveData:
+ name:
+ start: {x: 0, y: 0}
+ controlPoints: []
+ end: {x: 0, y: 0}
+ moveTime: 0
+ moveSpeed: 0
skeleton: {fileID: 0}
isSpine: 1
fishTypeID: 12002
@@ -2570,15 +2582,18 @@ MonoBehaviour:
currEffect_DieAward: {fileID: 0}
isMove: 1
is3D: 0
- forwordXYZ:
+ forwordXYZ: -Y
fishenum: 1
moveTime: 0
- isyz: 0
+ isyz: 1
yzID:
colliderList: []
lockPoint: {fileID: 0}
bingDongEffect: {fileID: 0}
+ needLockEvent: 0
+ createVideoClip: {fileID: 0}
rotationPY: 60
+ baseMmove: 0
isRotate: 1
isNot1: 0
ischild0: 0
diff --git a/Assets/MyGame/Scripts/Characters/Monster/MonsterContral.cs b/Assets/MyGame/Scripts/Characters/Monster/MonsterContral.cs
index 34920852b..29579d61b 100644
--- a/Assets/MyGame/Scripts/Characters/Monster/MonsterContral.cs
+++ b/Assets/MyGame/Scripts/Characters/Monster/MonsterContral.cs
@@ -47,6 +47,13 @@ public class MonsterContral : MonoBehaviour
/// 本鱼唯一标识(服务器下发的 GUID)
public string guid;
+ ///
+ /// ⭐ 是否已完成 Init(路线/guid/moveTime 已赋值)。
+ /// false=池回收后未初始化,OnEnable 不应执行 OnMoveUpdata,避免旧 moveTime/moveLine 误触发销毁
+ /// true=Init 已调用,可以正常 Update
+ ///
+ protected bool isInitialized = false;
+
/// 当前鱼使用的路线 ID(Init 时保存,用于房主把活鱼广播给新加入玩家)
public string lastMoveLineId;
@@ -241,7 +248,14 @@ public class MonsterContral : MonoBehaviour
_createVideoDuration = 0f;
_isPlayingCreateVideo = false;
InitAnimList();
- ChangeState(CharacterStateType.move);
+
+ // ⭐ 池回收的鱼(isInitialized=false)不立即 ChangeState(move),
+ // 避免 OnMoveUpdata 用旧 moveTime/moveLine 误触发 Id_DieFish_NotFX
+ // Init 调用后会设置 isInitialized=true 并 ChangeState(move)
+ if (isInitialized)
+ {
+ ChangeState(CharacterStateType.move);
+ }
// ⭐ 同步冰冻特效状态:池回收的鱼 bingDongEffect 可能残留激活状态,
// 重新生成时会显示白色冰冻蒙皮。根据当前是否冰冻中决定显隐
@@ -267,7 +281,8 @@ public class MonsterContral : MonoBehaviour
{
if (CreateFishManager.Instance == null) return;
-
+ // ⭐ 重置初始化标志:鱼被回收后需要重新 Init 才能正常 Update
+ isInitialized = false;
}
// ================================================================
@@ -329,6 +344,10 @@ public class MonsterContral : MonoBehaviour
// - 普通鱼走父类 Init,但普通鱼一般不配 createVideo
// OnMoveUpdata 会检测 createVideo.isPlaying,视频播放期间不移动
+ // ⭐ 标记已初始化,并启动 move 状态(OnEnable 里 isInitialized=false 时不会 ChangeState)
+ isInitialized = true;
+ ChangeState(CharacterStateType.move);
+
// 路径结束后自动销毁
//StartCoroutine(yanchi(gameObject, time, isyuzhen));
}
@@ -363,6 +382,10 @@ public class MonsterContral : MonoBehaviour
public void OnUpdate(CharacterStateType stateType)
{
if (!isMove) return;
+ // ⭐ 池回收的鱼(isInitialized=false)不执行移动逻辑,
+ // 避免 currState 残留为 move 时用旧 guid/moveLine 误触发 Id_DieFish_NotFX
+ // Init 调用后会设置 isInitialized=true
+ if (!isInitialized) return;
switch (stateType)
{
@@ -416,6 +439,10 @@ public class MonsterContral : MonoBehaviour
}
if (moveTime>=monsterData.moveLine.moveTime)
{
+ // ⭐ 路径走完后立即停止移动,防止 Id_DieFish_NotFX 每帧重复触发
+ // (野鱼 guid 已被覆盖时,Id_DieFish_NotFX 会 NOT_FOUND,但 moveTime 一直 >= moveTime,
+ // 不停止的话每帧都会调用,产生海量 NOT_FOUND 日志)
+ isMove = false;
CreateFishManager.Instance.Id_DieFish_NotFX(guid);
}
}
diff --git a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs
index 7d2f6f1b6..74adf063e 100644
--- a/Assets/MyGame/Scripts/Manager/CreateFishManager.cs
+++ b/Assets/MyGame/Scripts/Manager/CreateFishManager.cs
@@ -205,6 +205,13 @@ public class CreateFishManager : MonoSingleton
// fangzhu 字段已删除:鱼创建改由服务端 OnFishSpawn 统一下发,客户端无需房主出鱼
public bool isResources = false;
+
+ ///
+ /// 鱼阵实例全局计数器,每次 SpawnFishArray 递增。
+ /// 用于生成全局唯一 guid,防止 pathList 重复 pathId 或同 fishId 多次推送导致 guid 冲突。
+ /// guid 格式: baseGuid_arraySeq_i (如 16501_3_1),arraySeq 每次鱼阵递增,确保唯一。
+ ///
+ private int _fishArraySeq = 0;
// ================================================================
// 懒加载属性
// ================================================================
@@ -657,9 +664,13 @@ public class CreateFishManager : MonoSingleton
string guid = item.fishId.ToString();
// guid 去重:已有此 guid 的鱼跳过
+ // ⭐ 鱼阵鱼的 guid 是 baseGuid_pathId_i 格式,字典里没有 baseGuid 本身,
+ // 所以要额外检查是否有以 baseGuid+"_" 开头的 key,防止 sync 模式重复出鱼
+ // 导致 guid 冲突覆盖(旧鱼变野鱼无法销毁)
if (!string.IsNullOrEmpty(guid) &&
fishDatas_hashCodekey != null &&
- fishDatas_hashCodekey.ContainsKey(guid))
+ (fishDatas_hashCodekey.ContainsKey(guid) ||
+ fishDatas_hashCodekey.Keys.Any(k => k.StartsWith(guid + "_"))))
continue;
// 构造 FrameData_CreateFish 复用 SpawnFishMainThread
@@ -871,8 +882,27 @@ public class CreateFishManager : MonoSingleton
/// 将鱼实例注册到全局字典及对应分类字典。
private void RegisterFishInstance(MonsterContral mc, int fishTypeId)
{
+ // ⭐ 检测 guid 冲突:如果 guid 已存在,说明有重复出鱼(可能是 sync 模式重发),
+ // 旧鱼会被覆盖变成野鱼(无法通过 Id_DieFish_NotFX 销毁)
+ if (fishDatas_hashCodekey.TryGetValue(mc.guid, out var existing) && existing != null && existing != mc)
+ {
+ Debug.LogWarning($"[CreateFishManager] guid 冲突! guid={mc.guid}, 旧鱼={existing.gameObject.name} 被新鱼={mc.gameObject.name} 覆盖");
+ GameManager.LogFishFlow("COLLISION", mc.guid,
+ $"旧鱼={existing.gameObject.name}(instId={existing.GetInstanceID()}) 被新鱼={mc.gameObject.name}(instId={mc.GetInstanceID()}) 覆盖,旧鱼强制回收",
+ mc.GetInstanceID());
+
+ // ⭐ 旧鱼强制回收:被覆盖的旧鱼 GameObject 还活着但字典里已找不到,
+ // 会变成野鱼永远停在屏幕上。这里主动回收旧鱼,避免泄漏
+ existing.isMove = false; // 停止移动,防止 OnMoveUpdata 继续跑
+ Pool.Instance.Return(existing.gameObject);
+ }
fishDatas_hashCodekey[mc.guid] = mc;
+ // ⭐ 记录创建日志:包含 fishNumber/isyz/yzID/instId/dictCount,用于排查鱼阵鱼无法销毁
+ GameManager.LogFishFlow("CREATE", mc.guid,
+ $"fishNumber={mc.monsterData?.fishTypeConfig?.fishNumber} type={fishTypeId} isyz={mc.isyz} yzID={mc.yzID} dictCount={fishDatas_hashCodekey.Count}",
+ mc.GetInstanceID());
+
switch (fishTypeId)
{
case 1: // 普通鱼
@@ -937,6 +967,14 @@ public class CreateFishManager : MonoSingleton
return;
}
+ // ⭐ 日志:记录鱼阵入口,排查 pathList 重复导致 guid 冲突
+ GameManager.LogFishFlow("ARRAY_ENTER", createFishData.guid,
+ $"arrayNumber={yz.arrayNumber} fishNumber={yz.fishNumber} fishCount={yz.fishCount} pathList=[{string.Join(",", pathList)}] dictCount={fishDatas_hashCodekey.Count}");
+
+ // ⭐ 递增鱼阵实例计数器,用于生成全局唯一 guid
+ // 防止 pathList 中 pathId 重复,或同 fishId 多次推送导致 guid 冲突
+ int arraySeq = ++_fishArraySeq;
+
var prefab = FishResourcesData.GetFishPrefab(int.Parse(fishType.fishNumber));
var pos = new Vector3(9999, 9999, 0);
@@ -949,12 +987,12 @@ public class CreateFishManager : MonoSingleton
switch (prefix)
{
case "700": // 扇形阵:逐条延迟生成
- StartCoroutine(IeShanXing(createFishData, yz, pos, prefab, pathList, time, yz.fishCount));
+ StartCoroutine(IeShanXing(createFishData, yz, pos, prefab, pathList, time, yz.fishCount, arraySeq));
break;
case "701": // 环形阵:同帧同路径全部生成
foreach (int pathId in pathList)
- Quan(createFishData, yz, pos, prefab, pathId, yz.fishCount, time);
+ Quan(createFishData, yz, pos, prefab, pathId, yz.fishCount, time, arraySeq);
break;
case "702":
@@ -985,7 +1023,7 @@ public class CreateFishManager : MonoSingleton
/// 扇形阵:按路线列表逐条延迟 0.8s 生成一扇。
private IEnumerator IeShanXing(FrameData_CreateFish createFishData, FishArrayConfig yz,
- Vector3 pos, GameObject prefab, List pathList, long time, int count)
+ Vector3 pos, GameObject prefab, List pathList, long time, int count, int arraySeq)
{
foreach (int pathId in pathList)
{
@@ -993,16 +1031,13 @@ public class CreateFishManager : MonoSingleton
{
yield break;
}
- ShanXing(createFishData, yz, pos, prefab, pathId, count, time);
+ ShanXing(createFishData, yz, pos, prefab, pathId, count, time, arraySeq);
yield return new WaitForSeconds(0.8f);
}
}
- ///
- /// 扇形阵单扇:生成 16 条鱼,每条旋转角度递增(±5°交替),模拟扇形展开。
- ///
private void ShanXing(FrameData_CreateFish createFishData, FishArrayConfig yz,
- Vector3 pos, GameObject prefab, int pathId, int count, long time)
+ Vector3 pos, GameObject prefab, int pathId, int count, long time, int arraySeq)
{
var cfg = spawnDic[createFishData.fishNumber];
@@ -1019,7 +1054,9 @@ public class CreateFishManager : MonoSingleton
var mc = fish.GetComponent();
mc.monsterData.fishTypeConfig = FishDatas[yz.fishNumber];
- mc.guid = createFishData.guid + i;
+ // ⭐ guid 用 arraySeq 替代 pathId:arraySeq 每次鱼阵递增,全局唯一,
+ // 防止 pathList 重复 pathId 或同 fishId 多次推送导致 guid 冲突
+ mc.guid = createFishData.guid + "_" + arraySeq + "_" + i;
RegisterFishInstance(mc, FishDatas[yz.fishNumber].fishType);
mc.moveTime = (BeijingTimeManager.Instance.CurrentTimestampMs - time) / 1000f;
@@ -1032,7 +1069,7 @@ public class CreateFishManager : MonoSingleton
/// 环形阵:在同一路径上生成 count 条鱼,角度均匀分布(360/count)。
///
private void Quan(FrameData_CreateFish createFishData, FishArrayConfig yz,
- Vector3 pos, GameObject prefab, int pathId, int count, long time)
+ Vector3 pos, GameObject prefab, int pathId, int count, long time, int arraySeq)
{
if (count <= 0) return;
var cfg = spawnDic[createFishData.fishNumber];
@@ -1048,7 +1085,9 @@ public class CreateFishManager : MonoSingleton
var mc = fish.GetComponent();
mc.monsterData.fishTypeConfig = FishDatas[yz.fishNumber];
- mc.guid = createFishData.guid + i;
+ // ⭐ guid 用 arraySeq 替代 pathId:arraySeq 每次鱼阵递增,全局唯一,
+ // 防止 pathList 重复 pathId 或同 fishId 多次推送导致 guid 冲突
+ mc.guid = createFishData.guid + "_" + arraySeq + "_" + i;
RegisterFishInstance(mc, FishDatas[yz.fishNumber].fishType);
mc.moveTime = (BeijingTimeManager.Instance.CurrentTimestampMs - time) / 1000f;
@@ -1318,7 +1357,17 @@ public class CreateFishManager : MonoSingleton
///
public void Id_DieFish_NotFX(string fishId)
{
- if (!fishDatas_hashCodekey.TryGetValue(fishId, out var monster)) return;
+ if (!fishDatas_hashCodekey.TryGetValue(fishId, out var monster))
+ {
+ Debug.LogWarning($"[CreateFishManager] Id_DieFish_NotFX 找不到鱼: fishId={fishId}, 字典数量={fishDatas_hashCodekey.Count}");
+ // ⭐ 记录找不到鱼日志:这是bug的核心症状。附带 baseGuid 前缀匹配,看是否存在 guid 格式不一致
+ string baseGuid = fishId.Contains("_") ? fishId.Split('_')[0] : fishId;
+ var similarKeys = fishDatas_hashCodekey.Keys.Where(k => k.StartsWith(baseGuid)).Take(10).ToList();
+ string similarStr = similarKeys.Count > 0 ? string.Join(",", similarKeys) : "(无)";
+ GameManager.LogFishFlow("NOT_FOUND", fishId,
+ $"dictCount={fishDatas_hashCodekey.Count} baseGuid={baseGuid} 相似key={similarStr}");
+ return;
+ }
Pool.Instance.Return(monster.gameObject);
switch (monster.fishenum)
{
@@ -1346,6 +1395,11 @@ public class CreateFishManager : MonoSingleton
}
fishDatas_hashCodekey.Remove(fishId);
+ // ⭐ 记录成功回收日志
+ GameManager.LogFishFlow("REMOVE", fishId,
+ $"fishNumber={monster.monsterData?.fishTypeConfig?.fishNumber} isyz={monster.isyz} yzID={monster.yzID} dictCount={fishDatas_hashCodekey.Count}",
+ monster.GetInstanceID());
+
#if UNITY_EDITOR
// ⭐ 同步移除调试 List
fishList_All.Remove(monster);
@@ -1364,7 +1418,17 @@ public class CreateFishManager : MonoSingleton
///
public void Id_DieFish_FX(string fishId, RedPacketRecord coinNum, Vector3 v3Point, bool isLocal = false)
{
- if (!fishDatas_hashCodekey.TryGetValue(fishId, out var monster)) return;
+ if (!fishDatas_hashCodekey.TryGetValue(fishId, out var monster))
+ {
+ // ⭐ 记录找不到鱼日志(带特效击杀路径)
+ GameManager.LogFishFlow("NOT_FOUND", fishId, $"路径=Id_DieFish_FX dictCount={fishDatas_hashCodekey.Count}");
+ return;
+ }
+ // ⭐ 记录带特效击杀日志
+ GameManager.LogFishFlow("KILL_FX", fishId,
+ $"fishNumber={monster.monsterData?.fishTypeConfig?.fishNumber} isyz={monster.isyz} yzID={monster.yzID} dictCount={fishDatas_hashCodekey.Count}",
+ monster.GetInstanceID());
+
if (false)
{
AudioManager.Instance.PlayerFX(60004);
@@ -1444,7 +1508,7 @@ public class CreateFishManager : MonoSingleton
///
/// 不依赖鱼,只在屏幕内随机一个位置生成金币特效,然后飞回指定点。
///
- private void SpawnRandomCoinFX(RedPacketRecord coinNum, Vector3 targetWorldPos, bool isLocal = false)
+ public void SpawnRandomCoinFX(RedPacketRecord coinNum, Vector3 targetWorldPos, bool isLocal = false)
{
// 1. 随机一个屏幕坐标
Vector2 screenPos = new Vector2(
diff --git a/Assets/MyGame/Scripts/Manager/GameManager.cs b/Assets/MyGame/Scripts/Manager/GameManager.cs
index 9365b0101..a7454473c 100644
--- a/Assets/MyGame/Scripts/Manager/GameManager.cs
+++ b/Assets/MyGame/Scripts/Manager/GameManager.cs
@@ -264,6 +264,7 @@ public class GameManager : MonoSingleton
private StreamWriter _logFileWriter;
private StreamWriter _goldFlowWriter;
+ private StreamWriter _fishFlowWriter;
private void InitLogFileWriter()
{
@@ -277,6 +278,7 @@ public class GameManager : MonoSingleton
Debug.Log($"[GameManager] 日志文件已创建: {logPath}");
InitGoldFlowWriter(logDir);
+ InitFishFlowWriter(logDir);
}
catch (Exception e)
{
@@ -284,6 +286,28 @@ public class GameManager : MonoSingleton
}
}
+ private void InitFishFlowWriter(string logDir)
+ {
+ try
+ {
+ string fishLogPath = Path.Combine(logDir, "鱼生命周期_" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".log");
+ _fishFlowWriter = new StreamWriter(fishLogPath, true) { AutoFlush = true };
+
+ _fishFlowWriter.WriteLine($"# 鱼生命周期日志 - 启动于 {DateTime.Now:yyyy-MM-dd HH:mm:ss}");
+ _fishFlowWriter.WriteLine($"# 当前玩家: {user?.BaseInfo?.userName ?? "未登录"}({user?.id ?? "未登录"})");
+ _fishFlowWriter.WriteLine($"# 说明: 记录鱼的创建/注册、回收/销毁、guid冲突、找不到鱼等事件,用于排查鱼阵鱼无法销毁的问题");
+ _fishFlowWriter.WriteLine($"# 分类: CREATE=创建注册 | REMOVE=成功回收 | NOT_FOUND=找不到鱼(异常) | KILL_FX=带特效击杀 | COLLISION=guid冲突 | POOL_GET=从池复用 | POOL_NEW=新建实例 | POOL_RETURN=回收到池");
+ _fishFlowWriter.WriteLine($"# 格式: 时间|service=client|INFO|FishFlow|[分类] guid=xxx instId=xxx 描述 dictCount=xxx");
+ _fishFlowWriter.WriteLine(new string('-', 80));
+
+ Debug.Log($"[GameManager] 鱼生命周期日志文件已创建: {fishLogPath}");
+ }
+ catch (Exception e)
+ {
+ Debug.LogError($"[GameManager] 初始化鱼生命周期日志失败: {e.Message}");
+ }
+ }
+
private void InitGoldFlowWriter(string logDir)
{
try
@@ -345,6 +369,11 @@ public class GameManager : MonoSingleton
try { _goldFlowWriter.Flush(); _goldFlowWriter.Close(); } catch { }
_goldFlowWriter = null;
}
+ if (_fishFlowWriter != null)
+ {
+ try { _fishFlowWriter.Flush(); _fishFlowWriter.Close(); } catch { }
+ _fishFlowWriter = null;
+ }
}
#endif
@@ -423,6 +452,47 @@ public class GameManager : MonoSingleton
}
#endif
+ // ============================ 鱼生命周期日志(排查鱼阵鱼无法销毁问题) ============================
+ // 分类:
+ // CREATE 鱼创建并注册到字典(RegisterFishInstance)
+ // REMOVE 鱼从字典成功移除(Id_DieFish_NotFX 成功路径)
+ // NOT_FOUND 找不到鱼(Id_DieFish_NotFX 失败路径 —— 这就是bug)
+ // KILL_FX 带特效击杀(Id_DieFish_FX)
+ // COLLISION guid 冲突(新鱼覆盖旧鱼,旧鱼变野鱼)
+ // POOL_GET 从池复用鱼对象
+ // POOL_NEW 新建鱼实例(池中没有)
+ // POOL_RETURN 回收鱼对象到池
+ //
+ // 控制方式同金币流水: ENABLE_LOG_FILE 编译时 + enableLogFile 运行时
+
+ ///
+ /// 记录鱼生命周期事件。instId 传 0 表示不需要实例ID。
+ ///
+ [System.Diagnostics.Conditional("ENABLE_LOG_FILE")]
+ public static void LogFishFlow(string category, string guid, string description, int instId = 0)
+ {
+#if ENABLE_LOG_FILE
+ WriteFishFlow(category, guid, description, instId);
+#endif
+ }
+
+#if ENABLE_LOG_FILE
+ /// 鱼生命周期核心写入(私有)
+ private static void WriteFishFlow(string category, string guid, string description, int instId)
+ {
+ var inst = Instance;
+ if (inst == null || !inst.enableLogFile || inst._fishFlowWriter == null) return;
+ try
+ {
+ string timeStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+ string instStr = instId > 0 ? $" instId={instId}" : "";
+ // dictCount 从 CreateFishManager 取,这里只负责写文件
+ inst._fishFlowWriter.WriteLine($"{timeStr}|service=client|INFO|FishFlow|[{category}] guid={guid}{instStr} {description}");
+ }
+ catch { }
+ }
+#endif
+
public async Task InItLoad()
{
await TurretResourcesData.LoadTurretAssetsData();
diff --git a/Assets/MyGame/Scripts/Net/APIManager.cs b/Assets/MyGame/Scripts/Net/APIManager.cs
index 860551195..bb8965b6e 100644
--- a/Assets/MyGame/Scripts/Net/APIManager.cs
+++ b/Assets/MyGame/Scripts/Net/APIManager.cs
@@ -24,9 +24,9 @@ namespace Assets.MyGame.Scripts.Net
public const string baseURL = "http://47.109.132.12";
#else
- public const string baseURL = "http://47.109.132.12";
+ //public const string baseURL = "http://47.109.132.12";
- //public const string baseURL = "http://47.109.34.50";
+ public const string baseURL = "http://47.109.34.50";
#endif
diff --git a/Assets/MyGame/Scripts/Net/WebSocketManager.cs b/Assets/MyGame/Scripts/Net/WebSocketManager.cs
index 75f16149a..de26b0808 100644
--- a/Assets/MyGame/Scripts/Net/WebSocketManager.cs
+++ b/Assets/MyGame/Scripts/Net/WebSocketManager.cs
@@ -38,9 +38,9 @@ namespace Assets.MyGame.Scripts.Net
private const string baseUrl = "ws://47.109.132.12";
#else
- private const string baseUrl = "ws://47.109.132.12";
+ //private const string baseUrl = "ws://47.109.132.12";
- //private const string baseUrl = "ws://47.109.34.50";
+ private const string baseUrl = "ws://47.109.34.50";
#endif
public bool isGame = false;
diff --git a/Assets/MyGame/aa/Game/HHWK/MonsterTSY/ZDX/HHWK_ZDX_DieEvent.cs b/Assets/MyGame/aa/Game/HHWK/MonsterTSY/ZDX/HHWK_ZDX_DieEvent.cs
index 9d67cf1c0..205df5b11 100644
--- a/Assets/MyGame/aa/Game/HHWK/MonsterTSY/ZDX/HHWK_ZDX_DieEvent.cs
+++ b/Assets/MyGame/aa/Game/HHWK/MonsterTSY/ZDX/HHWK_ZDX_DieEvent.cs
@@ -94,7 +94,7 @@ public class HHWK_ZDX_DieEvent : DieEffect_TSY
return u * u * a + 2f * u * t * b + t * t * c;
}
- /// 爆炸:创建特效 + 检测并杀死范围内所有普通鱼
+ /// 爆炸:创建特效 + 范围内掉金币(不杀鱼,金币飞向击杀者座位)
private void Boom(Vector3 worldPos)
{
// 爆炸特效
@@ -104,8 +104,10 @@ public class HHWK_ZDX_DieEvent : DieEffect_TSY
Destroy(fx, 1.5f);
}
- // 范围检测所有鱼,只杀普通鱼
+ // 范围检测所有鱼,只放金币特效(不杀鱼),金币飞向击杀者座位
var hits = Physics2D.OverlapCircleAll(worldPos, explosionRadius, fishLayer);
+ // 金币飞向击杀者座位(GetSeatPosition 按 posID 查找,人机转发时也显示在人机座位)
+ Vector3 sitPos = GetSeatPosition();
foreach (var hit in hits)
{
if (!hit.CompareTag("Fish")) continue;
@@ -113,9 +115,8 @@ public class HHWK_ZDX_DieEvent : DieEffect_TSY
if (control == null) continue;
if (control.fishenum != FishTypeEnum.普通鱼) continue;
- // 金币飞向击杀者座位(GetSeatPosition 按 posID 查找,避免误用本地 currSitData)
- var sitPos = GetSeatPosition();
- CreateFishManager.Instance.Id_DieFish_FX(control.guid,
+ // 只放金币飞行特效,不调用 Id_DieFish_FX(不杀鱼)
+ CreateFishManager.Instance.SpawnRandomCoinFX(
new RedPacketRecord { Amount = paoBei * control.monsterData.fishTypeConfig.fishScore },
sitPos,
isLocal: isLocalCoin);
diff --git a/Assets/MyGame/aa/UI/DefaultPanel/LoadPanel/LoadPanel.prefab b/Assets/MyGame/aa/UI/DefaultPanel/LoadPanel/LoadPanel.prefab
index 284a9bbbd..88dbb7f57 100644
--- a/Assets/MyGame/aa/UI/DefaultPanel/LoadPanel/LoadPanel.prefab
+++ b/Assets/MyGame/aa/UI/DefaultPanel/LoadPanel/LoadPanel.prefab
@@ -10,8 +10,6 @@ GameObject:
m_Component:
- component: {fileID: 7249386716659303671}
- component: {fileID: 8097934881369305810}
- - component: {fileID: 116195096479235179}
- - component: {fileID: 7881499970494138628}
- component: {fileID: -3846603942418201827}
- component: {fileID: -8634983503678138505}
- component: {fileID: 5057158932964292094}
@@ -51,69 +49,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2258378551980177528}
m_CullTransparentMesh: 1
---- !u!114 &116195096479235179
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2258378551980177528}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, 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_Texture: {fileID: 2800000, guid: fdde5aa979e477e4590a48ae5b857c62, type: 3}
- m_UVRect:
- serializedVersion: 2
- x: 0
- y: 0
- width: 1
- height: 1
---- !u!328 &7881499970494138628
-VideoPlayer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2258378551980177528}
- m_Enabled: 1
- m_VideoClip: {fileID: 32900000, guid: 029dc73b392ceec4fbde610235b81a08, type: 3}
- m_TargetCameraAlpha: 1
- m_TargetCamera3DLayout: 0
- m_TargetCamera: {fileID: 0}
- m_TargetTexture: {fileID: 8400000, guid: 19aab719d005628448bd0ac1931120bc, type: 2}
- m_TimeReference: 0
- m_TargetMaterialRenderer: {fileID: 0}
- m_TargetMaterialProperty:
- m_RenderMode: 2
- m_AspectRatio: 2
- m_DataSource: 0
- m_TimeUpdateMode: 2
- m_PlaybackSpeed: 1
- m_AudioOutputMode: 2
- m_TargetAudioSources:
- - {fileID: 0}
- m_DirectAudioVolumes:
- - 1
- m_Url:
- m_EnabledAudioTracks: 01
- m_DirectAudioMutes: 00
- m_ControlledAudioTrackCount: 1
- m_PlayOnAwake: 1
- m_SkipOnDrop: 1
- m_Looping: 0
- m_WaitForFirstFrame: 1
- m_FrameReadyEventEnabled: 0
- m_VideoShaders: []
--- !u!114 &-3846603942418201827
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -256,7 +191,6 @@ GameObject:
- component: {fileID: 5054340543038180183}
- component: {fileID: 3224967138221357578}
- component: {fileID: 8053605273848260111}
- - component: {fileID: 252963838684377749}
m_Layer: 5
m_Name: LoadPanel (1)
m_TagString: Untagged
@@ -354,18 +288,3 @@ VideoPlayer:
m_WaitForFirstFrame: 1
m_FrameReadyEventEnabled: 0
m_VideoShaders: []
---- !u!114 &252963838684377749
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 5151481646774888968}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e3d181187b8960468a09681396cff23, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- player: {fileID: 0}
- image_Bg: {fileID: 0}
- fadeTime: 1.3
diff --git a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab
index 5650db513..aa230368f 100644
--- a/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab
+++ b/Assets/MyGame/aa/UI/Game/XJMH/GameMainPanelXJMH.prefab
@@ -4030,8 +4030,8 @@ MonoBehaviour:
textMeshProUGUI_RoomID: {fileID: 222610915537559086}
obj_DJSPanel: {fileID: 5476404289453217958}
tmp_DJS: {fileID: 2479921937008509017}
- btn_QueRen: {fileID: 2238313060525282867}
- btn_QuXiao: {fileID: 4624491302151963912}
+ btn_QueRen: {fileID: 4624491302151963912}
+ btn_QuXiao: {fileID: 2238313060525282867}
sceneName: XJMH
gameType: 4
btn_SettingList: {fileID: 7409283134322969632}
@@ -5529,7 +5529,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_text: "\u786E\u8BA4(10)"
+ m_text: "\u786E\u8BA4"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5d4a713fdd931db4c9ce49f068b54e0a, type: 2}
m_sharedMaterial: {fileID: 3593458263369068374, guid: 5d4a713fdd931db4c9ce49f068b54e0a,
@@ -8531,6 +8531,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 16cfaab69e1fa404dbb8432276bd7537, type: 3}
m_Name:
m_EditorClassIdentifier:
+ IsBaoJiangingActive: 0
+ obj_BaoJiangZhongPanelPosition: {fileID: 0}
user:
posID: 0
isBot: 0
@@ -8727,6 +8729,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 16cfaab69e1fa404dbb8432276bd7537, type: 3}
m_Name:
m_EditorClassIdentifier:
+ IsBaoJiangingActive: 0
+ obj_BaoJiangZhongPanelPosition: {fileID: 0}
user:
posID: 1
isBot: 0
diff --git a/Assets/MyGame/aa/UI/Login/LoginPanel.prefab b/Assets/MyGame/aa/UI/Login/LoginPanel.prefab
index 1e16063a7..750ee6f57 100644
--- a/Assets/MyGame/aa/UI/Login/LoginPanel.prefab
+++ b/Assets/MyGame/aa/UI/Login/LoginPanel.prefab
@@ -781,7 +781,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_Texture: {fileID: 2800000, guid: 409664c881db3c0409a10312f26f29ee, type: 3}
+ m_Texture: {fileID: 8400000, guid: ee1088bf4a1dfc54b9b571bf7560e723, type: 2}
m_UVRect:
serializedVersion: 2
x: 0