From 9b7b64bbb1340ab1a9c66bbf9b5fd0e5ccdf7d7c Mon Sep 17 00:00:00 2001 From: bzx <496597135@qq.com> Date: Wed, 14 Jan 2026 11:45:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=B0=83=E6=95=B4=E9=9D=92?= =?UTF-8?q?=E8=9B=99boss=E5=90=90=E8=9B=8B=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.idea.FutureMen2/.idea/workspace.xml | 20 ++++++--------- .../Gryllunguis_Controller.controller | 2 +- Assets/StreamingAssets/build_info | 2 +- .../Prefabs/Enemys/FrogBoss/FrogBoss.asset | 5 ++-- .../Enemys/FrogBoss/FrogBugEnemy.prefab | 25 +++++++++++++++---- .../Scripts/Actions/FrogBossActions.cs | 9 ++++--- .../Scripts/Actions/TortoiseActions.cs | 10 ++++---- .../_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs | 13 ++-------- .../Scripts/Enemy/FrogBoss/FrogBoss.cs | 2 ++ .../Scripts/Enemy/FrogBoss/FrogBugEnemy.cs | 5 ++-- .../Scripts/Enemy/FrogBoss/PoisonBall.cs | 5 ++-- 11 files changed, 53 insertions(+), 45 deletions(-) diff --git a/.idea/.idea.FutureMen2/.idea/workspace.xml b/.idea/.idea.FutureMen2/.idea/workspace.xml index 110aa28d..3d3a4384 100644 --- a/.idea/.idea.FutureMen2/.idea/workspace.xml +++ b/.idea/.idea.FutureMen2/.idea/workspace.xml @@ -6,23 +6,16 @@ - - - - - - - - - - - - + + + + - + + diff --git a/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller b/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller index 12cf7942..129d48d7 100644 --- a/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller +++ b/Assets/Monsters Full Pack Vol 1/Monsters Pack Vol 6/Gryllunguis/Gryllunguis_Controller.controller @@ -662,7 +662,7 @@ AnimatorStateTransition: m_Mute: 0 m_IsExit: 0 serializedVersion: 3 - m_TransitionDuration: 0.25 + m_TransitionDuration: 1.1643901 m_TransitionOffset: 0 m_ExitTime: 0.75 m_HasExitTime: 0 diff --git a/Assets/StreamingAssets/build_info b/Assets/StreamingAssets/build_info index e8870b1f..be533874 100644 --- a/Assets/StreamingAssets/build_info +++ b/Assets/StreamingAssets/build_info @@ -1 +1 @@ -Build from CHINAMI-UKDLSK3 at 2026/1/13 18:40:51 \ No newline at end of file +Build from CHINAMI-UKDLSK3 at 2026/1/14 11:39:15 \ No newline at end of file diff --git a/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset b/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset index 5bf18942..6f5db21e 100644 --- a/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset +++ b/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBoss.asset @@ -39,14 +39,15 @@ MonoBehaviour: Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"FrogBleepAttack","NodeData":{"Offset":"(122.1085,146.147156)"},"ID":25,"Name":"Frog Bleep Attack","Instant":true,"SingletongueSpeed":25,"Singledamage":30},{"Type":"SetEnemyState","NodeData":{"Offset":"(301.763,152.9411)"},"ID":26,"Name":"Set Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(856.9219,125.071754)"},"ID":27,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"CheckEnemyState","NodeData":{"Offset":"(-92.63159,200.6238)"},"ID":28,"Name":"Check - Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}},{"Type":"FrogIdleMove","NodeData":{"Offset":"(119.10144,189.552551)"},"ID":29,"Name":"Frog + Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}},{"Type":"FrogIdleMove","NodeData":{"Offset":"(287.2224,209.761536)"},"ID":29,"Name":"Frog Idle Move","Instant":true,"SinglemoveRadius":4,"SinglemoveAngle":90,"SinglestayTime":1.5,"SinglerotateSpeed":360}]}]},"DetachedTasks":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-1353.33228,1086.19006)"},"ID":30,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"CheckCooldown","NodeData":{"Offset":"(-215.1163,191.6279)"},"ID":31,"Name":"Check Cooldown","Instant":true,"CooldownTypetype":"Teleport"},{"Type":"SetEnemyState","NodeData":{"Offset":"(-36.0469666,193.953125)"},"ID":32,"Name":"Set Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"OctopusTeleport","NodeData":{"Offset":"(129.693481,190.210541)"},"ID":33,"Name":"Octopus Teleport","Instant":true,"SinglemoveDuration":2,"SinglehideDuration":0.5},{"Type":"SetEnemyState","NodeData":{"Offset":"(295.5813,200)"},"ID":34,"Name":"Set Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-295.414978,1233.45447)"},"ID":35,"Name":"Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"SetEnemyState","NodeData":{"Offset":"(-101.61293,120)"},"ID":36,"Name":"Set Enemy State","Instant":true,"SharedIntCurEnemyState":{"Type":"BehaviorDesigner.Runtime.SharedInt","Name":null,"Int32mValue":3}},{"Type":"OctopusTentacleAtk","NodeData":{"Offset":"(120,120)"},"ID":37,"Name":"Octopus - Tentacle Atk","Instant":true,"Int32attackCount":2}]}],"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"attackmode","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"self","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"cooldownTimer","IsShared":true,"SinglemValue":15},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"skillReady","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsQteAttack","IsShared":true,"BooleanmValue":true},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsStopQte","IsShared":true,"BooleanmValue":false}]}' + Tentacle Atk","Instant":true,"Int32attackCount":2}]},{"Type":"FrogEggAttack","NodeData":{"Offset":"(1001.42859,577.1428)"},"ID":38,"Name":"Frog + Egg Attack","Instant":true,"Int32eggCount":12,"SingleshootInterval":0.15,"SinglefanAngle":60,"SinglelaunchHeight":3,"SingleflightTime":1.1}],"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"attackmode","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"self","IsShared":true},{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":"cooldownTimer","IsShared":true,"SinglemValue":15},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"skillReady","IsShared":true,"BooleanmValue":false},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsQteAttack","IsShared":true,"BooleanmValue":true},{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":"IsStopQte","IsShared":true,"BooleanmValue":false}]}' fieldSerializationData: typeName: [] fieldNameHash: diff --git a/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab b/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab index 756a7f2d..0ba82651 100644 --- a/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab +++ b/Assets/_FutureMen2/Prefabs/Enemys/FrogBoss/FrogBugEnemy.prefab @@ -1031,6 +1031,7 @@ GameObject: - component: {fileID: -4366665564013984747} - component: {fileID: -1491859959607692579} - component: {fileID: 7777068790013891191} + - component: {fileID: 7300574650919205589} m_Layer: 3 m_Name: FrogBugEnemy m_TagString: Enemy @@ -1069,7 +1070,7 @@ Animator: m_Controller: {fileID: 9100000, guid: 8821a22a054de5d48829fb837ed28a55, type: 2} m_CullingMode: 1 m_UpdateMode: 0 - m_ApplyRootMotion: 1 + m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 m_WarningMessage: @@ -1096,7 +1097,7 @@ MonoBehaviour: bloodSlider: {fileID: 3873863944127844135} enemyState: 0 explosionPre: {fileID: 0} - dieTime: 3 + dieTime: 2 isShowEnd: 0 skill1Cooldown: 6 skill2Cooldown: 30 @@ -1270,10 +1271,24 @@ CapsuleCollider: m_ProvidesContacts: 1 m_Enabled: 1 serializedVersion: 2 - m_Radius: 0.385175 - m_Height: 1.5799111 + m_Radius: 0.57 + m_Height: 2.1 m_Direction: 2 - m_Center: {x: 0, y: 0.62768173, z: 0} + m_Center: {x: 0, y: 0.62768173, z: -0.12} +--- !u!114 &7300574650919205589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4891584589991081564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31b48c27550e9f9478dc3ee402bb930d, type: 3} + m_Name: + m_EditorClassIdentifier: + curEnemy: {fileID: 9068868098415327668} + player: {fileID: 0} --- !u!1 &5238226244982169157 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs b/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs index 4b5d2a0c..edd2f0d6 100644 --- a/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs +++ b/Assets/_FutureMen2/Scripts/Actions/FrogBossActions.cs @@ -91,7 +91,6 @@ public class FrogBleepAttack : Action } } - /// /// 毒液弹攻击 /// @@ -204,7 +203,7 @@ public class FrogEggAttack : Action boss.EggAttack(); yield return new WaitForSeconds(0.5f); - + boss.aiPath.isStopped = true; Transform firePoint = boss.eggFirePoint; // 嘴巴 float step = fanAngle / (eggCount - 1); @@ -245,7 +244,7 @@ public class FrogEggAttack : Action ); FrogBugEnemy bug = egg.GetComponent(); - bug.SetAtk(boss.Data.Atk_2); + bug.SetAtk(boss.Data.Atk_2,boss.Data.Hp_CS2); // 扇形方向 Vector3 dir = Quaternion.Euler(0, angle, 0) * boss.transform.forward; @@ -290,7 +289,11 @@ public class FrogIdleMove : Action if (player == null) return TaskStatus.Running; if (boss.HasAnySkillReady()) + { + boss.aiPath.isStopped = true; return TaskStatus.Failure; + } + FaceToPlayer(); Move(); diff --git a/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs b/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs index 007db95d..ecf0a858 100644 --- a/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs +++ b/Assets/_FutureMen2/Scripts/Actions/TortoiseActions.cs @@ -65,15 +65,15 @@ public class TortoiseSprintAttack : Action Vector3 targetPos = player.position + dir * sprintDistance; // A* 移动 - boss.ai.maxSpeed = sprintSpeed; - boss.ai.isStopped = false; - boss.ai.destination = targetPos; + boss.aiPath.maxSpeed = sprintSpeed; + boss.aiPath.isStopped = false; + boss.aiPath.destination = targetPos; // 面向移动方向 boss.transform.rotation = Quaternion.LookRotation(dir); // 等待到达 - while (!boss.ai.reachedEndOfPath) + while (!boss.aiPath.reachedEndOfPath) { if (boss.isDead) { @@ -83,7 +83,7 @@ public class TortoiseSprintAttack : Action yield return null; } - boss.ai.isStopped = true; + boss.aiPath.isStopped = true; boss.EndAttack(); } diff --git a/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs b/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs index c58437da..eecc3c34 100644 --- a/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs +++ b/Assets/_FutureMen2/Scripts/Enemy/Enemy/Enemy.cs @@ -54,17 +54,6 @@ public class Enemy : MonoBehaviour public BehaviorTree behaviourTree; - // A* / RVO - private IAstarAI _ai; - public IAstarAI ai - { - get - { - if (_ai == null) _ai = GetComponent(); - return _ai; - } - } - private AIPath _aiPath; public AIPath aiPath { @@ -168,6 +157,8 @@ public class Enemy : MonoBehaviour ColliderComponent.enabled = false; if(behaviourTree != null) behaviourTree.enabled = false; + if(aiPath!=null) + aiPath.enabled = false; StopAllCoroutines(); CoroutineTaskManager.Instance.WaitSecondTodo(() => { diff --git a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs index f533e40e..de45515d 100644 --- a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs +++ b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBoss.cs @@ -23,6 +23,7 @@ public class FrogBoss : Enemy { clipQuadObj.transform.localPosition = new Vector3(0, -5f, 0); mouthBoneHit.SetDamage(Data.Atk_1P); + bloodSlider.gameObject.SetActive(false); } public override void Update() @@ -46,6 +47,7 @@ public class FrogBoss : Enemy CoroutineTaskManager.Instance.WaitSecondTodo(() => { isShowEnd = true; + bloodSlider.gameObject.SetActive(true); }, 2f); }); } diff --git a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs index fe74785e..b0feb239 100644 --- a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs +++ b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/FrogBugEnemy.cs @@ -43,9 +43,11 @@ public class FrogBugEnemy : Enemy //蛋到达落点后 抖动两下 之后播放蛋破碎动画 播放后model打开 蛋消失 怪物切换成EnemyState.NormalAttack } - public void SetAtk(float curAtk) + public void SetAtk(float curAtk,float maxHp) { atk = curAtk; + maxHealth = maxHp; + health = maxHp; } @@ -260,7 +262,6 @@ public class FrogBugEnemy : Enemy StopAllCoroutines(); StopAI(); - anim.SetBool("IsDie",true); } diff --git a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs index 4dc6bb75..b85eeba9 100644 --- a/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs +++ b/Assets/_FutureMen2/Scripts/Enemy/FrogBoss/PoisonBall.cs @@ -1,3 +1,4 @@ +using DragonLi.Core; using UnityEngine; [RequireComponent(typeof(Rigidbody))] @@ -36,9 +37,9 @@ public class PoisonBall : MonoBehaviour private void OnCollisionEnter(Collision collision) { - if (collision.gameObject.tag == "Ground") + if (collision.gameObject.tag == "Ground"|| collision.gameObject.tag == "Player") { - GameObject ball= Instantiate(poisonPoolPrefab, transform.position, Quaternion.identity); + GameObject ball= Instantiate(poisonPoolPrefab, transform.position.ReflectVectorXOZ(), Quaternion.identity); ball.GetComponent().SetDamage(poolDamage, poolTime); Destroy(gameObject); }