From 6c950bb3773f88bf58f62631ba06cc5ee9fdb291 Mon Sep 17 00:00:00 2001 From: Foldcc_b1 Date: Mon, 21 Oct 2024 17:02:25 +0800 Subject: [PATCH] updat core --- Assets/GameRes/GamePool/enemy_A.prefab | 2 +- Assets/GameRes/GamePool/enemy_B.prefab | 2 +- Assets/GameRes/GamePool/enemy_C.prefab | 2 +- Assets/GameRes/GamePool/enemy_Witch.prefab | 2 +- Assets/GameRes/GamePool/player.prefab | 2 +- Assets/GameRes/Scenes/InitScene.unity | 1 + Assets/Scripts/Game/Component/EnemyEntity.cs | 5 ++++- Assets/Scripts/Game/Component/MapContent.cs | 9 +++++--- Assets/Scripts/Game/Component/PlayerEntity.cs | 18 +++++++++++++++- Assets/Scripts/Game/Component/ScenePart.cs | 21 ++++++++++++++++++- Assets/Scripts/Game/FsmNode/GameField.cs | 12 +++++++++-- Assets/Scripts/Game/FsmNode/GameFight.cs | 6 +++++- Assets/Scripts/Game/FsmNode/GameStart.cs | 3 +++ 13 files changed, 71 insertions(+), 14 deletions(-) diff --git a/Assets/GameRes/GamePool/enemy_A.prefab b/Assets/GameRes/GamePool/enemy_A.prefab index 459b5c3..45f9a1a 100644 --- a/Assets/GameRes/GamePool/enemy_A.prefab +++ b/Assets/GameRes/GamePool/enemy_A.prefab @@ -101,7 +101,7 @@ GameObject: - component: {fileID: 1892528414967833642} m_Layer: 0 m_Name: enemy_A - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/GameRes/GamePool/enemy_B.prefab b/Assets/GameRes/GamePool/enemy_B.prefab index 863e55c..dc95ccf 100644 --- a/Assets/GameRes/GamePool/enemy_B.prefab +++ b/Assets/GameRes/GamePool/enemy_B.prefab @@ -17,7 +17,7 @@ GameObject: - component: {fileID: 2721736918044598135} m_Layer: 0 m_Name: enemy_B - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/GameRes/GamePool/enemy_C.prefab b/Assets/GameRes/GamePool/enemy_C.prefab index 4caf8ca..3322ccc 100644 --- a/Assets/GameRes/GamePool/enemy_C.prefab +++ b/Assets/GameRes/GamePool/enemy_C.prefab @@ -102,7 +102,7 @@ GameObject: - component: {fileID: 4422978186369214168} m_Layer: 0 m_Name: enemy_C - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/GameRes/GamePool/enemy_Witch.prefab b/Assets/GameRes/GamePool/enemy_Witch.prefab index 77ba0aa..a81c4eb 100644 --- a/Assets/GameRes/GamePool/enemy_Witch.prefab +++ b/Assets/GameRes/GamePool/enemy_Witch.prefab @@ -102,7 +102,7 @@ GameObject: - component: {fileID: 5860468675817691985} m_Layer: 0 m_Name: enemy_Witch - m_TagString: Untagged + m_TagString: Enemy m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/GameRes/GamePool/player.prefab b/Assets/GameRes/GamePool/player.prefab index 9e85906..e7ee175 100644 --- a/Assets/GameRes/GamePool/player.prefab +++ b/Assets/GameRes/GamePool/player.prefab @@ -15,7 +15,7 @@ GameObject: - component: {fileID: 3744876990496415339} m_Layer: 0 m_Name: player - m_TagString: Untagged + m_TagString: Player m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 diff --git a/Assets/GameRes/Scenes/InitScene.unity b/Assets/GameRes/Scenes/InitScene.unity index 7e8466d..e8fb0fe 100644 --- a/Assets/GameRes/Scenes/InitScene.unity +++ b/Assets/GameRes/Scenes/InitScene.unity @@ -2072,6 +2072,7 @@ MonoBehaviour: PlayerEntity: {fileID: 355335389} ScenePart: {fileID: 0} Pathfinder: {fileID: 1230494201} + IsActiveGame: 0 --- !u!1 &1575124293 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Game/Component/EnemyEntity.cs b/Assets/Scripts/Game/Component/EnemyEntity.cs index 70092a9..95cf4bd 100644 --- a/Assets/Scripts/Game/Component/EnemyEntity.cs +++ b/Assets/Scripts/Game/Component/EnemyEntity.cs @@ -173,7 +173,7 @@ namespace Game.Component ) ); - private void ResetState () + public void ResetState () { this.AnimState.SetState (EnemyAnimStateType.Idle); this.UpdateSpeedState (false , false); @@ -269,16 +269,19 @@ namespace Game.Component isUpdate |= _fsmData.HasAttack != this.HasAttack; isUpdate |= _fsmData.HasSafeArea != this.HasSafeArea; isUpdate |= _fsmData.HasRunaway != this.HasRunaway; + isUpdate |= _fsmData.HasActive != MapContent.Instance.IsActiveGame; this._fsmData.HasAttack = HasAttack; this._fsmData.HasSafeArea = HasSafeArea; this._fsmData.HasRunaway = HasRunaway; + this._fsmData.HasActive = MapContent.Instance.IsActiveGame; if (isUpdate) { this._fsmController.SetBool ("hasAttack", this._fsmData.HasAttack); this._fsmController.SetBool ("hasSafeArea", this._fsmData.HasSafeArea); this._fsmController.SetBool ("hasRunaway", this._fsmData.HasRunaway); + this._fsmController.SetBool ("hasActive", this._fsmData.HasActive); } } diff --git a/Assets/Scripts/Game/Component/MapContent.cs b/Assets/Scripts/Game/Component/MapContent.cs index 2f84f6e..e53b201 100644 --- a/Assets/Scripts/Game/Component/MapContent.cs +++ b/Assets/Scripts/Game/Component/MapContent.cs @@ -10,6 +10,9 @@ namespace Game.Component [HideInInspector] public ScenePart ScenePart; public AstarPath Pathfinder; + + public bool IsActiveGame; + //玩家位置 public Vector2 PlayerPosition { private set; get; } @@ -51,16 +54,16 @@ namespace Game.Component } this.ScenePart = scenePart; + this.ScenePart.InitPart (); // this.Pathfinder.data.SetData (this.ScenePart.mapCacheData.bytes); // this.Pathfinder.FlushGraphUpdates (); this.Pathfinder.Scan (); CameraManager.Instance.SetBoxCollider (this.ScenePart.cameraCollider); - ResetPlayer (); - CameraManager.Instance.SetCameraState (CameraManager.CameraState.Player_Near); } - public void ResetPlayer () + public void ResetGame () { + this.ScenePart.RefreshInit (); this.PlayerEntity.transform.position = this.ScenePart.createPos.position; this.PlayerEntity.gameObject.SetActive (true); this.PlayerEntity.RefreshInit (); diff --git a/Assets/Scripts/Game/Component/PlayerEntity.cs b/Assets/Scripts/Game/Component/PlayerEntity.cs index 3b439a9..8cb0d7e 100644 --- a/Assets/Scripts/Game/Component/PlayerEntity.cs +++ b/Assets/Scripts/Game/Component/PlayerEntity.cs @@ -1,5 +1,7 @@ -using Framework.Timer; +using System; +using Framework.Timer; using Framework.Utils.Extend; +using Game.EventDefine; using UnityEngine; namespace Game.Component @@ -24,6 +26,11 @@ namespace Game.Component public void OnMove (Vector2 vector) { + if (!MapContent.Instance.IsActiveGame) + { + return; + } + var t = this.transform; // 获取前方方向的世界坐标 Vector3 forward = (Vector3)vector; @@ -53,5 +60,14 @@ namespace Game.Component this.speedBuffOffset = 0; //主角出生初始化 } + + private void OnTriggerEnter2D (Collider2D other) + { + if (other.CompareTag ("Enemy")) + { + //死亡特效 + GameEventDefine.ChangeGameFsm.SendMessage (GameState.FieldGame); + } + } } } \ No newline at end of file diff --git a/Assets/Scripts/Game/Component/ScenePart.cs b/Assets/Scripts/Game/Component/ScenePart.cs index 03feca4..da3f5ff 100644 --- a/Assets/Scripts/Game/Component/ScenePart.cs +++ b/Assets/Scripts/Game/Component/ScenePart.cs @@ -1,4 +1,5 @@ -using Sirenix.OdinInspector; +using System.Collections.Generic; +using Sirenix.OdinInspector; using UnityEngine; namespace Game.Component @@ -14,6 +15,8 @@ namespace Game.Component [LabelText ("当前完成数:")] private int _currentConditionNumber = 0; + private List _enemyEntities; + public bool IsComplete => _currentConditionNumber >= completeConditionNumber; @@ -22,5 +25,21 @@ namespace Game.Component this._currentConditionNumber += number; return _currentConditionNumber >= completeConditionNumber; } + + public void RefreshInit () + { + this._currentConditionNumber = 0; + foreach (var enemyEntity in this._enemyEntities) + { + enemyEntity.ResetState (); + } + } + + public void InitPart () + { + this._enemyEntities = new List (); + this._enemyEntities = new List (transform.GetComponentsInChildren (true)); + } + } } \ No newline at end of file diff --git a/Assets/Scripts/Game/FsmNode/GameField.cs b/Assets/Scripts/Game/FsmNode/GameField.cs index f90bfdb..b507a8d 100644 --- a/Assets/Scripts/Game/FsmNode/GameField.cs +++ b/Assets/Scripts/Game/FsmNode/GameField.cs @@ -1,16 +1,24 @@ using System; +using Cysharp.Threading.Tasks; using Framework.Audio; using Framework.FSMLite; using Framework.UI; +using Game.Component; +using UnityEngine; using Views; namespace Game.FsmNode { public class GameField : StateMachine { - protected override void OnEnter (params object[] args) + protected override async void OnEnter (params object[] args) { - AudioManager.Instance.PlaySoundEffect(SeAudio.OverGame_Fail); + CameraManager.Instance.SetCloseUpTarget (MapContent.Instance.PlayerEntity.transform , 2f); + CameraImpulseUtils.Instance.ExplosionImpulseCamera (1 , 0.5f , 0.5f , 0.5f); + CameraEffectUtils.Instance.SetAberration (1 , 0.5f); + AudioManager.Instance.PlaySoundEffect (SeAudio.OverGame_Fail); + await UniTask.Delay (2000); + this.stateMachineRunner.OpenState (GameState.StartGame); } protected override void OnExit () diff --git a/Assets/Scripts/Game/FsmNode/GameFight.cs b/Assets/Scripts/Game/FsmNode/GameFight.cs index f98bdfb..2caec85 100644 --- a/Assets/Scripts/Game/FsmNode/GameFight.cs +++ b/Assets/Scripts/Game/FsmNode/GameFight.cs @@ -3,6 +3,7 @@ using System.Guide; using Framework.Audio; using Framework.FSMLite; using Framework.UI; +using Game.Component; using Game.Data; using UnityEngine; @@ -21,13 +22,16 @@ namespace Game.FsmNode public static string GroupName = typeof(GameFight).FullName; protected override async void OnEnter (params object[] args) { + MapContent.Instance.IsActiveGame = true; + // MapContent.Instance.Pathfinder. AudioManager.Instance.PlayBGM (BgmAudio.FightingBgm); var globalData = RoomManager.Instance.RoomGlobalData; } protected override void OnExit () { - + MapContent.Instance.IsActiveGame = false; + // MapContent.Instance.Pathfinder.PausePathfinding (); } } } \ No newline at end of file diff --git a/Assets/Scripts/Game/FsmNode/GameStart.cs b/Assets/Scripts/Game/FsmNode/GameStart.cs index ab7b084..670fb9b 100644 --- a/Assets/Scripts/Game/FsmNode/GameStart.cs +++ b/Assets/Scripts/Game/FsmNode/GameStart.cs @@ -2,6 +2,7 @@ using Framework.Audio; using Framework.FSMLite; using Framework.UI; +using Game.Component; using Game.Data; using Game.EventDefine; using Views; @@ -15,6 +16,8 @@ namespace Game.FsmNode AudioManager.Instance.PlayBGM(BgmAudio.NormalBgm , 0.65f); GameEventDefine.ChangeGameFsm.SendMessage (GameState.FightGame , true); UIManager.Instance.CloseLoading (null); + MapContent.Instance.ResetGame (); + CameraManager.Instance.SetCameraState (CameraManager.CameraState.Player_Near); } protected override void OnExit ()